controlbinding: Check if the weak pointer was cleared before explicitly removing it

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().
This commit is contained in:
Sebastian Dröge 2019-04-10 10:18:54 +03:00 committed by Tim-Philipp Müller
parent 1f9b375f96
commit 10e2cb84f8

View file

@ -176,8 +176,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);