diff options
author | Matthias Clasen <mclasen@redhat.com> | 2004-07-28 15:32:07 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2004-07-28 15:32:07 +0000 |
commit | 47bd02855f2892bf31c0ddd8fde3890da759186c (patch) | |
tree | 17c10e640fefd5fd42203dc3cada37a7b20030a0 | |
parent | 889096b1ead9cf917d021bd7b82961a9799b82b6 (diff) |
Catch cases of forgotten g_type_add_private(). (#148368, Tommi Komulainen)
2004-07-28 Matthias Clasen <mclasen@redhat.com>
* gtype.c (g_type_instance_get_private): Catch cases of
forgotten g_type_add_private(). (#148368, Tommi Komulainen)
-rw-r--r-- | gobject/ChangeLog | 7 | ||||
-rw-r--r-- | gobject/gtype.c | 6 |
2 files changed, 12 insertions, 1 deletions
diff --git a/gobject/ChangeLog b/gobject/ChangeLog index 8971e6998..a962b169a 100644 --- a/gobject/ChangeLog +++ b/gobject/ChangeLog @@ -1,7 +1,12 @@ +2004-07-28 Matthias Clasen <mclasen@redhat.com> + + * gtype.c (g_type_instance_get_private): Catch cases of + forgotten g_type_add_private(). (#148368, Tommi Komulainen) + 2004-07-21 Matthias Clasen <mclasen@redhat.com> * 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 <sandmann@daimi.au.dk> diff --git a/gobject/gtype.c b/gobject/gtype.c index 3b773ae75..3808ed1fd 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); } |