gobject-introspection r722 - in trunk: . girepository
- From: tko svn gnome org
- To: svn-commits-list gnome org
- Subject: gobject-introspection r722 - in trunk: . girepository
- Date: Wed, 15 Oct 2008 22:28:53 +0000 (UTC)
Author: tko
Date: Wed Oct 15 22:28:53 2008
New Revision: 722
URL: http://svn.gnome.org/viewvc/gobject-introspection?rev=722&view=rev
Log:
2008-10-15 Tommi Komulainen <tommi komulainen iki fi>
Bug 556434 â unhandled interface/object/... member types
* girepository/girnode.c (g_ir_node_check_unhandled_members,
g_ir_node_build_typelib): Check all
interface/object/boxed/struct/union members are processed and
abort if they are not. (Mostly callbacks in structs, but also
fields in interfaces.)
Modified:
trunk/ChangeLog
trunk/girepository/girnode.c
Modified: trunk/girepository/girnode.c
==============================================================================
--- trunk/girepository/girnode.c (original)
+++ trunk/girepository/girnode.c Wed Oct 15 22:28:53 2008
@@ -1197,6 +1197,33 @@
}
}
+static void
+g_ir_node_check_unhandled_members (GList **members,
+ GIrNodeTypeId container_type)
+{
+ if (*members)
+ {
+ GList *l;
+
+ for (l = *members; l; l = l->next)
+ {
+ GIrNode *member = (GIrNode *)l->data;
+
+ g_printerr ("Unhandled '%s' member '%s' type '%s'\n",
+ g_ir_node_type_to_string (container_type),
+ member->name,
+ g_ir_node_type_to_string (member->type));
+ }
+
+ g_list_free (*members);
+ *members = NULL;
+
+ /* Commented out for now to not break the build.
+ g_error ("Unhandled members. Aborting.");
+ */
+ }
+}
+
void
g_ir_node_build_typelib (GIrNode *node,
GIrModule *module,
@@ -1665,7 +1692,9 @@
module, modules, strings,
types, data, offset, offset2);
- g_list_free (members);
+ g_ir_node_check_unhandled_members (&members, node->type);
+
+ g_assert (members == NULL);
}
break;
@@ -1698,7 +1727,9 @@
module, modules, strings,
types, data, offset, offset2);
- g_list_free (members);
+ g_ir_node_check_unhandled_members (&members, node->type);
+
+ g_assert (members == NULL);
}
break;
@@ -1755,7 +1786,9 @@
module, modules, strings,
types, data, offset, offset2);
- g_list_free (members);
+ g_ir_node_check_unhandled_members (&members, node->type);
+
+ g_assert (members == NULL);
if (union_->discriminator_type)
{
@@ -1878,7 +1911,9 @@
module, modules, strings,
types, data, offset, offset2);
- g_list_free (members);
+ g_ir_node_check_unhandled_members (&members, node->type);
+
+ g_assert (members == NULL);
}
break;
@@ -1936,7 +1971,9 @@
module, modules, strings,
types, data, offset, offset2);
- g_list_free (members);
+ g_ir_node_check_unhandled_members (&members, node->type);
+
+ g_assert (members == NULL);
}
break;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]