X-Git-Url: https://git.street.me.uk/andy/viking.git/blobdiff_plain/d156fff56c25b446eb6e983e92d68c3442eb68dc..c2cf03332f51a9fa992220124635f737399fba91:/src/vikgobjectbuilder.c?ds=inline diff --git a/src/vikgobjectbuilder.c b/src/vikgobjectbuilder.c index 24839335..f8648374 100644 --- a/src/vikgobjectbuilder.c +++ b/src/vikgobjectbuilder.c @@ -1,11 +1,11 @@ /* -*- 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 - * 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);