gobject: Convert a debug check from an assertion to a g_critical()

An assertion is harder to skip over, and using a g_critical() can give
us a more informative error message.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

https://gitlab.gnome.org/GNOME/glib/issues/179
This commit is contained in:
Philip Withnall 2018-10-10 10:21:49 +13:00
parent d3928abe45
commit b9a8c03915

View File

@ -3349,10 +3349,16 @@ g_object_unref (gpointer _object)
GOBJECT_IF_DEBUG (OBJECTS, GOBJECT_IF_DEBUG (OBJECTS,
{ {
/* catch objects not chaining finalize handlers */ gboolean was_present;
G_LOCK (debug_objects);
g_assert (!g_hash_table_contains (debug_objects_ht, object)); /* catch objects not chaining finalize handlers */
G_UNLOCK (debug_objects); 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); g_type_free_instance ((GTypeInstance*) object);
} }