gobject-introspection r315 - branches/gir-compiler/tools



Author: johan
Date: Thu Aug  7 12:53:29 2008
New Revision: 315
URL: http://svn.gnome.org/viewvc/gobject-introspection?rev=315&view=rev

Log:
Attach the return node to the function/signal/vfunc node

Modified:
   branches/gir-compiler/tools/girparser.c

Modified: branches/gir-compiler/tools/girparser.c
==============================================================================
--- branches/gir-compiler/tools/girparser.c	(original)
+++ branches/gir-compiler/tools/girparser.c	Thu Aug  7 12:53:29 2008
@@ -1297,7 +1297,7 @@
     MISSING_ATTRIBUTE (context, error, element_name, "name");
   if (ctype == NULL)
     MISSING_ATTRIBUTE (context, error, element_name, "c:type");
-
+  
   switch (ctx->current_typed->type)
     {
     case G_IR_NODE_PARAM:
@@ -1323,6 +1323,7 @@
       g_printerr("current node is %d\n", ctx->current_node->type);
       g_assert_not_reached ();
     }
+
   ctx->current_typed = NULL;
   return TRUE;
 }
@@ -1349,6 +1350,31 @@
 
       state_switch (ctx, STATE_FUNCTION_RETURN);
 
+      switch (ctx->current_node->type)
+	{
+	case G_IR_NODE_FUNCTION:
+	case G_IR_NODE_CALLBACK:
+	  {
+	    GIrNodeFunction *func = (GIrNodeFunction *)ctx->current_node;
+	    func->result = param;
+	  }
+	  break;
+	case G_IR_NODE_SIGNAL:
+	  {
+	    GIrNodeSignal *signal = (GIrNodeSignal *)ctx->current_node;
+	    signal->result = param;
+	  }
+	  break;
+	case G_IR_NODE_VFUNC:
+	  {
+	    GIrNodeVFunc *vfunc = (GIrNodeVFunc *)ctx->current_node;
+	    vfunc->result = param;
+	  }
+	  break;
+	default:
+	  g_assert_not_reached ();
+	}
+      
       return TRUE;
     }
 



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