Ensure we always have types for container nodes
authorColin Walters <walters@src.gnome.org>
Mon, 29 Sep 2008 19:03:46 +0000 (19:03 +0000)
committerColin Walters <walters@src.gnome.org>
Mon, 29 Sep 2008 19:03:46 +0000 (19:03 +0000)
svn path=/trunk/; revision=638

girepository/girparser.c

index 88f7c78..fbdea58 100644 (file)
@@ -1506,12 +1506,16 @@ end_type_top (ParseContext *ctx)
       typenode->tag == GI_TYPE_TAG_GLIST ||
       typenode->tag == GI_TYPE_TAG_GSLIST)
     {
-      typenode->parameter_type1 = parse_type (ctx, "any");
+      if (typenode->parameter_type1 == NULL)
+       typenode->parameter_type1 = parse_type (ctx, "any");
     }
   else if (typenode->tag == GI_TYPE_TAG_GHASH)
     {
-      typenode->parameter_type1 = parse_type (ctx, "any");
-      typenode->parameter_type2 = parse_type (ctx, "any");
+      if (typenode->parameter_type1 == NULL)
+       {
+         typenode->parameter_type1 = parse_type (ctx, "any");
+         typenode->parameter_type2 = parse_type (ctx, "any");
+       }
     }
 
   switch (ctx->current_typed->type)