[glib] Make g_type_interface_prerequisites() only return one instantiable type
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] Make g_type_interface_prerequisites() only return one instantiable type
- Date: Wed, 17 Feb 2010 07:55:37 +0000 (UTC)
commit 63a6666ab7a54c9584b6579e323301f3528e86b3
Author: Benjamin Otte <otte redhat com>
Date: Wed Feb 17 08:45:28 2010 +0100
Make g_type_interface_prerequisites() only return one instantiable type
Previously, the code had a heisenbug and could potentially return
superclasses, too. In fact, it was based on the behavior of malloc.
https://bugzilla.redhat.com/show_bug.cgi?id=554678
gobject/gtype.c | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
---
diff --git a/gobject/gtype.c b/gobject/gtype.c
index edeca10..767506f 100644
--- a/gobject/gtype.c
+++ b/gobject/gtype.c
@@ -1622,9 +1622,11 @@ g_type_interface_prerequisites (GType interface_type,
{
GType prerequisite = IFACE_NODE_PREREQUISITES (iface)[i];
TypeNode *node = lookup_type_node_I (prerequisite);
- if (node->is_instantiatable &&
- (!inode || type_node_is_a_L (node, inode)))
- inode = node;
+ if (node->is_instantiatable)
+ {
+ if (!inode || type_node_is_a_L (node, inode))
+ inode = node;
+ }
else
types[n++] = NODE_TYPE (node);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]