gobject-introspection r315 - branches/gir-compiler/tools
- From: johan svn gnome org
- To: svn-commits-list gnome org
- Subject: gobject-introspection r315 - branches/gir-compiler/tools
- Date: Thu, 7 Aug 2008 12:53:30 +0000 (UTC)
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]