From 1e23d8a9bcb94595d51e087cb30ba7034b35c8cb Mon Sep 17 00:00:00 2001 From: Tim Janik Date: Fri, 27 Oct 2000 04:19:34 +0000 Subject: [PATCH] ri Oct 27 05:35:14 2000 Tim Janik * gobject.c (g_object_watch_closure): fixed realloc bug, reported by havoc. --- gobject/ChangeLog | 3 +++ gobject/gobject.c | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/gobject/ChangeLog b/gobject/ChangeLog index 4cd22d6..e1be144 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 e551910..59d4bef 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); } } -- 2.7.4