[glib] Bug 623402 - schema compiler reports wrong line



commit a941660873ad4db42f1799e444d46d95721af840
Author: Ryan Lortie <desrt desrt ca>
Date:   Fri Jul 2 11:14:28 2010 -0400

    Bug 623402 - schema compiler reports wrong line
    
    Don't reuse the GMarkupParseContext in order to avoid inaccurate line
    number reports.  Fix a memory leak, too.

 gio/gschema-compile.c |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)
---
diff --git a/gio/gschema-compile.c b/gio/gschema-compile.c
index 33d6ea4..8923723 100644
--- a/gio/gschema-compile.c
+++ b/gio/gschema-compile.c
@@ -1552,14 +1552,9 @@ parse_gschema_files (gchar  **files,
                      GError **error)
 {
   GMarkupParser parser = { start_element, end_element, text };
-  GMarkupParseContext *context;
   ParseState state = { 0, };
   const gchar *filename;
 
-  context = g_markup_parse_context_new (&parser,
-                                        G_MARKUP_PREFIX_ERROR_POSITION,
-                                        &state, NULL);
-
   state.enum_table = g_hash_table_new_full (g_str_hash, g_str_equal,
                                             g_free, enum_state_free);
 
@@ -1571,9 +1566,14 @@ parse_gschema_files (gchar  **files,
 
   while ((filename = *files++) != NULL)
     {
+      GMarkupParseContext *context;
       gchar *contents;
       gsize size;
 
+      context = g_markup_parse_context_new (&parser,
+                                            G_MARKUP_PREFIX_ERROR_POSITION,
+                                            &state, NULL);
+
       if (!g_file_get_contents (filename, &contents, &size, error))
         return FALSE;
 
@@ -1588,6 +1588,8 @@ parse_gschema_files (gchar  **files,
           g_prefix_error (error, "%s: ", filename);
           return FALSE;
         }
+
+      g_markup_parse_context_free (context);
     }
 
   g_hash_table_unref (state.enum_table);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]