Fri Dec 15 2006 Matthias Clasen <mclasen@redhat.com>
authorMatthias Clasen <matthiasc@src.gnome.org>
Sat, 16 Dec 2006 04:28:43 +0000 (04:28 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Sat, 16 Dec 2006 04:28:43 +0000 (04:28 +0000)
        * gtype.c (instance_real_class_get): Dereference the pointer
        before dropping the lock.  (#378078, Jonathan Matthew)

gobject/ChangeLog
gobject/gtype.c

index 7244434..6a266ec 100644 (file)
@@ -1,3 +1,8 @@
+Fri Dec 15 2006  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtype.c (instance_real_class_get): Dereference the pointer 
+       before dropping the lock.  (#378078, Jonathan Matthew)
+
 Tue Oct 10 12:06:08 2006  Tim Janik  <timj@gtk.org>
 
        * glib-mkenums.in: 
index 12ce66f..44620db 100644 (file)
@@ -1511,11 +1511,13 @@ static inline GTypeClass*
 instance_real_class_get (gpointer instance)
 {
   InstanceRealClass key, *node;
+  GTypeClass *class;
   key.instance = instance;
   G_LOCK (instance_real_class);
   node = instance_real_class_bsa ? g_bsearch_array_lookup (instance_real_class_bsa, &instance_real_class_bconfig, &key) : NULL;
+  class = node ? node->class : NULL;
   G_UNLOCK (instance_real_class);
-  return node ? node->class : NULL;
+  return class;
 }
 
 GTypeInstance*