diff --git a/gobject/gobject.c b/gobject/gobject.c index f82fa8c79..3f8ad9273 100644 --- a/gobject/gobject.c +++ b/gobject/gobject.c @@ -3349,10 +3349,16 @@ g_object_unref (gpointer _object) GOBJECT_IF_DEBUG (OBJECTS, { - /* catch objects not chaining finalize handlers */ - G_LOCK (debug_objects); - g_assert (!g_hash_table_contains (debug_objects_ht, object)); - G_UNLOCK (debug_objects); + gboolean was_present; + + /* catch objects not chaining finalize handlers */ + G_LOCK (debug_objects); + was_present = g_hash_table_remove (debug_objects_ht, object); + G_UNLOCK (debug_objects); + + if (was_present) + g_critical ("Object %p of type %s not finalized correctly.", + object, G_OBJECT_TYPE_NAME (object)); }); g_type_free_instance ((GTypeInstance*) object); }