Commit 90e03113 authored by Sebastian Dröge's avatar Sebastian Dröge 🍵 Committed by Tim-Philipp Müller

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 fd06d56d
......@@ -1054,7 +1054,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;
......@@ -1065,7 +1071,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