element: don't take object lock for g_critical() and flesh out warning message some more

This commit is contained in:
Tim-Philipp Müller 2009-09-01 10:03:35 +01:00
parent 3a5cceeb6b
commit 0d50805678

View file

@ -2882,12 +2882,16 @@ gst_element_dispose (GObject * object)
/* ERRORS */
not_null:
{
gboolean is_locked = gst_element_is_locked_state (element);
gboolean is_locked;
is_locked = GST_OBJECT_FLAG_IS_SET (element, GST_ELEMENT_LOCKED_STATE);
g_critical
("\nTrying to dispose element %s, but it is in %s%s instead of the NULL"
" state.\n"
"You need to explicitly set elements to the NULL state before\n"
"dropping the final reference, to allow them to clean up.\n",
"dropping the final reference, to allow them to clean up.\n"
"This problem may also be caused by a refcounting bug in the\n"
"application or some element.\n",
GST_OBJECT_NAME (element),
gst_element_state_get_name (GST_STATE (element)),
is_locked ? " (locked)" : "");