Commit 8de3344e authored by Sebastian Dröge's avatar Sebastian Dröge 🍵

bus: Don't allow removing signal watches with gst_bus_remove_watch()

Signal watches are reference counted and gst_bus_remove_watch() would
immediately remove it, breaking the reference counting. Only
gst_bus_remove_signal_watch() should be used for removing signal
watches.
parent 22763366
......@@ -1052,7 +1052,13 @@ gst_bus_remove_watch (GstBus * bus)
if (bus->priv->signal_watch == NULL) {
GST_ERROR_OBJECT (bus, "no bus watch was present");
goto no_watch;
goto error;
}
if (bus->priv->num_signal_watchers > 0) {
GST_ERROR_OBJECT (bus,
"trying to remove signal watch with gst_bus_remove_watch()");
goto error;
}
watch_id = bus->priv->signal_watch;
......@@ -1063,7 +1069,7 @@ gst_bus_remove_watch (GstBus * bus)
return TRUE;
no_watch:
error:
GST_OBJECT_UNLOCK (bus);
return FALSE;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment