mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-03-03 14:42:10 +01:00
applied patch from Jean-Yves Lefort <jylefort@brutele.be> to not access
Wed Oct 6 02:12:44 2004 <timj@birnet.org> * gtype.c (g_type_instance_get_private): applied patch from Jean-Yves Lefort <jylefort@brutele.be> to not access the instance_real_class_bsa pointer without holding the instance_real_class lock.
This commit is contained in:
parent
9af2838a91
commit
565d9253e7
@ -1,3 +1,9 @@
|
||||
Wed Oct 6 02:12:44 2004 <timj@birnet.org>
|
||||
|
||||
* gtype.c (g_type_instance_get_private): applied patch from Jean-Yves
|
||||
Lefort <jylefort@brutele.be> to not access the instance_real_class_bsa
|
||||
pointer without holding the instance_real_class lock.
|
||||
|
||||
2004-10-04 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gsignal.c (g_signal_add_emission_hook): Improve the warning
|
||||
|
@ -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,14 +3535,9 @@ 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->g_class;
|
||||
|
||||
instance_node = lookup_type_node_I (class->g_type);
|
||||
if (G_UNLIKELY (!instance_node || !instance_node->is_instantiatable))
|
||||
|
Loading…
x
Reference in New Issue
Block a user