From: Matthias Clasen Date: Wed, 28 Jul 2004 15:32:07 +0000 (+0000) Subject: Catch cases of forgotten g_type_add_private(). (#148368, Tommi Komulainen) X-Git-Url: http://git.openbox.org/?a=commitdiff_plain;h=47bd02855f2892bf31c0ddd8fde3890da759186c;p=dana%2Fcg-glib.git Catch cases of forgotten g_type_add_private(). (#148368, Tommi Komulainen) 2004-07-28 Matthias Clasen * gtype.c (g_type_instance_get_private): Catch cases of forgotten g_type_add_private(). (#148368, Tommi Komulainen) --- diff --git a/gobject/ChangeLog b/gobject/ChangeLog index 8971e699..a962b169 100644 --- a/gobject/ChangeLog +++ b/gobject/ChangeLog @@ -1,7 +1,12 @@ +2004-07-28 Matthias Clasen + + * gtype.c (g_type_instance_get_private): Catch cases of + forgotten g_type_add_private(). (#148368, Tommi Komulainen) + 2004-07-21 Matthias Clasen * glib-genmarshal.c (put_marshal_value_getters): Use the - correct fields for enums and flags. (#145015,Tommi Komulainen) + correct fields for enums and flags. (#145015, Tommi Komulainen) Sun Jul 18 18:03:08 2004 Soeren Sandmann diff --git a/gobject/gtype.c b/gobject/gtype.c index 3b773ae7..3808ed1f 100644 --- a/gobject/gtype.c +++ b/gobject/gtype.c @@ -3585,6 +3585,12 @@ g_type_instance_get_private (GTypeInstance *instance, parent_node = lookup_type_node_I (NODE_PARENT_TYPE (private_node)); g_assert (parent_node->data && parent_node->data->common.ref_count); + if (G_UNLIKELY (private_node->data->instance.private_size == parent_node->data->instance.private_size)) + { + g_warning ("g_type_get_private() requires a prior call to g_type_add_private()"); + return NULL; + } + offset += ALIGN_STRUCT (parent_node->data->instance.private_size); }