[gobject-introspection] girparser: Move <doc> handling to passthrough



commit 5a6f6a756cd5ab45389342de55d630478e7a9e9f
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Thu Jan 31 22:59:23 2013 -0500

    girparser: Move <doc> handling to passthrough
    
    https://bugzilla.gnome.org/show_bug.cgi?id=693040

 girepository/girparser.c |   33 ++++++---------------------------
 1 files changed, 6 insertions(+), 27 deletions(-)
---
diff --git a/girepository/girparser.c b/girepository/girparser.c
index 1a83c23..6015a04 100644
--- a/girepository/girparser.c
+++ b/girepository/girparser.c
@@ -95,7 +95,6 @@ typedef enum
   STATE_ALIAS,           /* 30 */
   STATE_TYPE,
   STATE_ATTRIBUTE,
-  STATE_DOC,
   STATE_PASSTHROUGH
 } ParseState;
 
@@ -2117,22 +2116,6 @@ end_type (ParseContext *ctx)
 }
 
 static gboolean
-start_doc (GMarkupParseContext *context,
-	   const gchar         *element_name,
-	   const gchar        **attribute_names,
-	   const gchar        **attribute_values,
-	   ParseContext       *ctx,
-	   GError             **error)
-{
-  if (strcmp (element_name, "doc") != 0)
-    return FALSE;
-
-  state_switch (ctx, STATE_DOC);
-
-  return TRUE;
-}
-
-static gboolean
 start_attribute (GMarkupParseContext *context,
                  const gchar         *element_name,
                  const gchar        **attribute_names,
@@ -2765,9 +2748,12 @@ start_element_handler (GMarkupParseContext *context,
 			       attribute_names, attribute_values,
 			       ctx, error))
 	goto out;
-      else if (start_doc (context, element_name, attribute_names,
-			  attribute_values, ctx, error))
-	goto out;
+      if (strcmp (element_name, "doc") == 0)
+        {
+          state_switch (ctx, STATE_PASSTHROUGH);
+          ctx->unknown_depth = 1;
+          goto out;
+        }
       break;
 
     case 'e':
@@ -3413,13 +3399,6 @@ end_element_handler (GMarkupParseContext *context,
         }
       break;
 
-    case STATE_DOC:
-      if (strcmp ("doc", element_name) == 0)
-        {
-          state_switch (ctx, ctx->prev_state);
-        }
-      break;
-
     case STATE_PASSTHROUGH:
       ctx->unknown_depth -= 1;
       g_assert (ctx->unknown_depth >= 0);



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