From: 4 Date: Wed, 6 Oct 2004 00:15:07 +0000 (+0000) Subject: applied patch from Jean-Yves Lefort to not access X-Git-Tag: GTK_2_5_4~34 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=565d9253e722d7743b07c0006c8c31adc1e49319;p=platform%2Fupstream%2Fglib.git applied patch from Jean-Yves Lefort to not access Wed Oct 6 02:12:44 2004 * gtype.c (g_type_instance_get_private): applied patch from Jean-Yves Lefort to not access the instance_real_class_bsa pointer without holding the instance_real_class lock. --- diff --git a/gobject/ChangeLog b/gobject/ChangeLog index 36d1548..5b569fd 100644 --- a/gobject/ChangeLog +++ b/gobject/ChangeLog @@ -1,3 +1,9 @@ +Wed Oct 6 02:12:44 2004 + + * gtype.c (g_type_instance_get_private): applied patch from Jean-Yves + Lefort to not access the instance_real_class_bsa + pointer without holding the instance_real_class lock. + 2004-10-04 Matthias Clasen * gsignal.c (g_signal_add_emission_hook): Improve the warning diff --git a/gobject/gtype.c b/gobject/gtype.c index 6aaf87c..cea3900 100644 --- a/gobject/gtype.c +++ b/gobject/gtype.c @@ -1515,7 +1515,7 @@ instance_real_class_get (gpointer instance) InstanceRealClass key, *node; key.instance = instance; G_LOCK (instance_real_class); - node = g_bsearch_array_lookup (instance_real_class_bsa, &instance_real_class_bconfig, &key); + node = instance_real_class_bsa ? g_bsearch_array_lookup (instance_real_class_bsa, &instance_real_class_bconfig, &key) : NULL; G_UNLOCK (instance_real_class); return node ? node->class : NULL; } @@ -3535,13 +3535,8 @@ g_type_instance_get_private (GTypeInstance *instance, /* while instances are initialized, their class pointers change, * so figure the instances real class first */ - if (instance_real_class_bsa) - { - class = instance_real_class_get (instance); - if (!class) - class = instance->g_class; - } - else + class = instance_real_class_get (instance); + if (!class) class = instance->g_class; instance_node = lookup_type_node_I (class->g_type);