Skip to content
This repository has been archived by the owner on Nov 17, 2020. It is now read-only.

Commit

Permalink
applied patch from Jean-Yves Lefort <jylefort@brutele.be> to not access
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
4 authored and Tim Janik committed Oct 6, 2004
1 parent 9af2838 commit 565d925
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 8 deletions.
6 changes: 6 additions & 0 deletions gobject/ChangeLog
@@ -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
Expand Down
11 changes: 3 additions & 8 deletions gobject/gtype.c
Expand Up @@ -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;
}
Expand Down Expand Up @@ -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);
Expand Down

0 comments on commit 565d925

Please sign in to comment.