X-Git-Url: https://git.street.me.uk/andy/viking.git/blobdiff_plain/a482007a7fe1b27f6377306ef4fc460a500413cb..c2cf03332f51a9fa992220124635f737399fba91:/src/vikgobjectbuilder.c?ds=sidebyside diff --git a/src/vikgobjectbuilder.c b/src/vikgobjectbuilder.c index d5076554..f8648374 100644 --- a/src/vikgobjectbuilder.c +++ b/src/vikgobjectbuilder.c @@ -5,7 +5,7 @@ * * 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 - * Free Software Foundation, either version 3 of the License, or + * Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * viking is distributed in the hope that it will be useful, but @@ -34,7 +34,6 @@ #include "vikgobjectbuilder.h" /* FIXME use private fields */ -static gchar *class_name = NULL; GType gtype = 0; gchar *property_name = NULL; GParameter *parameters = NULL; @@ -104,13 +103,14 @@ _start_element (GMarkupParseContext *context, { if (strcmp(element_name, "object") == 0) { - class_name = g_strdup(attribute_values[0]); + gchar *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; } + g_free (class_name); } if (strcmp(element_name, "property") == 0 && gtype != 0) { @@ -222,7 +222,7 @@ vik_gobject_builder_parse (VikGobjectBuilder *self, const gchar *filename) { GMarkupParser xml_parser; GMarkupParseContext *xml_context; - GError *error; + GError *error = NULL; FILE *file = g_fopen (filename, "r"); if (file == NULL) @@ -243,11 +243,13 @@ vik_gobject_builder_parse (VikGobjectBuilder *self, const gchar *filename) while ((nb = fread (buff, sizeof(gchar), BUFSIZ, file)) > 0) { if (!g_markup_parse_context_parse(xml_context, buff, nb, &error)) - printf("read_xml() : parsing error.\n"); + g_warning("%s: parsing error: %s", __FUNCTION__, + error != NULL ? error->message : "???"); } /* cleanup */ if (!g_markup_parse_context_end_parse(xml_context, &error)) - printf("read_xml() : errors occurred reading file.\n"); + g_warning("%s: errors occurred reading file '%s': %s", __FUNCTION__, filename, + error != NULL ? error->message : "???"); g_markup_parse_context_free(xml_context); fclose (file);