[gst-cvs] gstreamer: element: don't take object lock for g_critical() and flesh out warning message some more

Tim Mueller tpm at kemper.freedesktop.org
Tue Sep 1 02:18:40 PDT 2009


Module: gstreamer
Branch: master
Commit: 0d50805678d1a0a4c10b0dbba4201d26261ada4b
URL:    http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=0d50805678d1a0a4c10b0dbba4201d26261ada4b

Author: Tim-Philipp Müller <tim.muller at collabora.co.uk>
Date:   Tue Sep  1 10:03:35 2009 +0100

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

---

 gst/gstelement.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/gst/gstelement.c b/gst/gstelement.c
index f32717c..efb52b2 100644
--- a/gst/gstelement.c
+++ b/gst/gstelement.c
@@ -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)" : "");





More information about the Gstreamer-commits mailing list