gobject-introspection r118 - in trunk: . tools



Author: robtaylor
Date: Mon Feb 18 16:42:14 2008
New Revision: 118
URL: http://svn.gnome.org/viewvc/gobject-introspection?rev=118&view=rev

Log:
2008-02-18  Rob Taylor  <rob taylor codethink co uk>

	* tools/gidlnode.h:
	* tools/gidlnode.c: (g_idl_node_can_have_member):
	Add g_idl_node_can_have_member.

	* tools/scanner.c: (g_igenerator_process_function_symbol):
	Use g_idl_node_can_have_member to test if we should add a function
	as a member of the type node.


Modified:
   trunk/ChangeLog
   trunk/tools/gidlnode.c
   trunk/tools/gidlnode.h
   trunk/tools/scanner.c

Modified: trunk/tools/gidlnode.c
==============================================================================
--- trunk/tools/gidlnode.c	(original)
+++ trunk/tools/gidlnode.c	Mon Feb 18 16:42:14 2008
@@ -776,6 +776,21 @@
     return strcmp (node->name, other->name);
 }
 
+gboolean
+g_idl_node_can_have_member (GIdlNode    *node)
+{
+  switch (node->type)
+    {
+    case G_IDL_NODE_OBJECT:
+    case G_IDL_NODE_INTERFACE:
+    case G_IDL_NODE_BOXED:
+    case G_IDL_NODE_STRUCT:
+    case G_IDL_NODE_UNION:
+      return TRUE;
+    };
+  return FALSE;
+}
+
 void
 g_idl_node_add_member (GIdlNode         *node,
 		       GIdlNodeFunction *member)

Modified: trunk/tools/gidlnode.h
==============================================================================
--- trunk/tools/gidlnode.h	(original)
+++ trunk/tools/gidlnode.h	Mon Feb 18 16:42:14 2008
@@ -319,6 +319,7 @@
                                       guint32     *offset2);
 int       g_idl_node_cmp             (GIdlNode    *node,
 				      GIdlNode    *other);
+gboolean  g_idl_node_can_have_member (GIdlNode    *node);
 void      g_idl_node_add_member      (GIdlNode         *node,
 				      GIdlNodeFunction *member);
 guint32   write_string               (const gchar *str,

Modified: trunk/tools/scanner.c
==============================================================================
--- trunk/tools/scanner.c	(original)
+++ trunk/tools/scanner.c	Mon Feb 18 16:42:14 2008
@@ -613,7 +613,7 @@
 
       node = g_hash_table_lookup (igenerator->type_by_lower_case_prefix,
 				  prefix);
-      if (node != NULL)
+      if (node != NULL && g_idl_node_can_have_member (node))
 	{
 	  func->node.name = g_strdup (last_underscore + 1);
 



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