controlbinding: Check if the weak pointer was cleared before explicitly removing it
authorSebastian Dröge <sebastian@centricular.com>
Wed, 10 Apr 2019 07:18:54 +0000 (10:18 +0300)
committerSebastian Dröge <sebastian@centricular.com>
Wed, 10 Apr 2019 07:18:54 +0000 (10:18 +0300)
Otherwise we'll get an assertion if the object behind the weak pointer
was already destroyed in the meantime as we would pass NULL as first
argument to g_object_remove_weak_pointer().

gst/gstcontrolbinding.c

index bed5e01..568f82f 100644 (file)
@@ -172,8 +172,9 @@ gst_control_binding_dispose (GObject * object)
   GstControlBinding *self = GST_CONTROL_BINDING (object);
 
   /* we did not took a reference */
-  g_object_remove_weak_pointer ((GObject *) self->__object,
-      (gpointer *) & self->__object);
+  if (self->__object)
+    g_object_remove_weak_pointer ((GObject *) self->__object,
+        (gpointer *) & self->__object);
   self->__object = NULL;
   g_weak_ref_clear (&self->ABI.abi.priv->object);