ri Oct 27 05:35:14 2000 Tim Janik <timj@gtk.org>
authorTim Janik <timj@src.gnome.org>
Fri, 27 Oct 2000 04:19:34 +0000 (04:19 +0000)
committerTim Janik <timj@src.gnome.org>
Fri, 27 Oct 2000 04:19:34 +0000 (04:19 +0000)
        * gobject.c (g_object_watch_closure): fixed realloc bug, reported
                by havoc.

gobject/ChangeLog
gobject/gobject.c

index 4cd22d6..e1be144 100644 (file)
@@ -1,5 +1,8 @@
 Fri Oct 27 05:35:14 2000  Tim Janik  <timj@gtk.org>
 
+       * gobject.c (g_object_watch_closure): fixed realloc bug, reported
+       by havoc.
+
        * gsignal.c (g_signal_newv): fixed deadlock scenarion where
        g_signal_lookup() would be called with the signal lock being
        held. reported by james henstridge.
index e551910..59d4bef 100644 (file)
@@ -960,7 +960,7 @@ g_object_watch_closure (GObject  *object,
   g_closure_add_marshal_guards (closure,
                                object, (GClosureNotify) g_object_ref,
                                object, (GClosureNotify) g_object_unref);
-  carray = g_object_get_qdata (object, quark_closure_array);
+  carray = g_object_steal_qdata (object, quark_closure_array);
   if (!carray)
     {
       carray = g_renew (CArray, NULL, 1);
@@ -975,6 +975,7 @@ g_object_watch_closure (GObject  *object,
       
       carray = g_realloc (carray, sizeof (*carray) + sizeof (carray->closures[0]) * i);
       carray->closures[i] = closure;
+      g_object_set_qdata_full (object, quark_closure_array, carray, destroy_closure_array);
     }
 }