From 25c1ae6c1123bdb55cad1b7a450c83db0d1b0554 Mon Sep 17 00:00:00 2001 From: Owen Taylor Date: Sun, 10 Sep 2000 16:01:15 +0000 Subject: [PATCH] Move call to g_type_free_instance() here from g_object_do_finalize, since Sat Sep 9 20:04:13 2000 Owen Taylor * gobject.c (g_object_last_unref): Move call to g_type_free_instance() here from g_object_do_finalize, since g_type_free_instance() can unload the object's implementation. --- gobject/ChangeLog | 7 +++++++ gobject/gobject.c | 7 ++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/gobject/ChangeLog b/gobject/ChangeLog index 1d1a22d..ebc75be 100644 --- a/gobject/ChangeLog +++ b/gobject/ChangeLog @@ -1,3 +1,10 @@ +Sat Sep 9 20:04:13 2000 Owen Taylor + + * gobject.c (g_object_last_unref): Move call to + g_type_free_instance() here from g_object_do_finalize, + since g_type_free_instance() can unload the object's + implementation. + 2000-07-27 Tor Lillqvist * gobject.c: No, don't mark glib_debug_objects for export here, diff --git a/gobject/gobject.c b/gobject/gobject.c index 9dc289f..7f47335 100644 --- a/gobject/gobject.c +++ b/gobject/gobject.c @@ -270,7 +270,10 @@ g_object_last_unref (GObject *object) object->ref_count -= 1; if (object->ref_count == 0) /* may have been re-referenced meanwhile */ - G_OBJECT_GET_CLASS (object)->finalize (object); + { + G_OBJECT_GET_CLASS (object)->finalize (object); + g_type_free_instance ((GTypeInstance*) object); + } } static void @@ -296,8 +299,6 @@ g_object_do_finalize (GObject *object) debug_objects_count--; } #endif DEBUG_OBJECTS - - g_type_free_instance ((GTypeInstance*) object); } gpointer -- 2.7.4