From: Tim Janik Date: Fri, 27 Oct 2000 04:19:34 +0000 (+0000) Subject: ri Oct 27 05:35:14 2000 Tim Janik X-Git-Url: http://git.openbox.org/?a=commitdiff_plain;h=1e23d8a9bcb94595d51e087cb30ba7034b35c8cb;p=dana%2Fcg-glib.git ri Oct 27 05:35:14 2000 Tim Janik * gobject.c (g_object_watch_closure): fixed realloc bug, reported by havoc. --- diff --git a/gobject/ChangeLog b/gobject/ChangeLog index 4cd22d64..e1be144f 100644 --- a/gobject/ChangeLog +++ b/gobject/ChangeLog @@ -1,5 +1,8 @@ Fri Oct 27 05:35:14 2000 Tim Janik + * 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. diff --git a/gobject/gobject.c b/gobject/gobject.c index e5519107..59d4beff 100644 --- a/gobject/gobject.c +++ b/gobject/gobject.c @@ -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); } }