X-Git-Url: https://git.street.me.uk/andy/viking.git/blobdiff_plain/71cea316bc59b175f891ae7eff259742e013563e..355fba114cb61cc3b9828c85f1341c46caf4a335:/src/vikgobjectbuilder.c diff --git a/src/vikgobjectbuilder.c b/src/vikgobjectbuilder.c index 89b8c64b..d5076554 100644 --- a/src/vikgobjectbuilder.c +++ b/src/vikgobjectbuilder.c @@ -1,7 +1,7 @@ /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */ /* * viking - * Copyright (C) Guilhem Bonnefille 2009 + * Copyright (C) 2009, Guilhem Bonnefille * * viking is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -29,7 +29,7 @@ #include #include -#include +#include #include "vikgobjectbuilder.h" @@ -77,7 +77,6 @@ static void vik_gobject_builder_class_init (VikGobjectBuilderClass *klass) { GObjectClass* object_class = G_OBJECT_CLASS (klass); - GObjectClass* parent_class = G_OBJECT_CLASS (klass); object_class->finalize = vik_gobject_builder_finalize; @@ -107,6 +106,11 @@ _start_element (GMarkupParseContext *context, { class_name = g_strdup(attribute_values[0]); gtype = g_type_from_name (class_name); + if (gtype == 0) + { + g_warning("Unknown GObject type '%s'", class_name); + return; + } } if (strcmp(element_name, "property") == 0 && gtype != 0) { @@ -145,7 +149,7 @@ _end_element (GMarkupParseContext *context, int i = 0; for (i = 0 ; i < nb_parameters ; i++) { - g_free (parameters[i].name); + g_free ((gchar *)parameters[i].name); g_value_unset (&(parameters[i].value)); } g_free (parameters); @@ -196,7 +200,7 @@ _text (GMarkupParseContext *context, { /* store new parameter */ g_debug("VikGobjectBuilder: store new GParameter for %s: (%s)%s=%*s", - g_type_name(gtype), g_type_name(G_VALUE_TYPE(&gvalue)), property_name, text_len, text); + g_type_name(gtype), g_type_name(G_VALUE_TYPE(&gvalue)), property_name, (gint)text_len, text); nb_parameters++; parameters = g_realloc(parameters, sizeof(GParameter)*nb_parameters); /* parameter name */