From 822bef51f01379b9728d1c156df3f34a6745a34f Mon Sep 17 00:00:00 2001 From: Doug Nazar <nazard@nazar.ca> Date: Wed, 21 May 2025 09:41:14 -0400 Subject: [PATCH] validate: Fix marking actions done Don't take extra ref during calling done() from 'stream-selection' Mark as done actions that are completed immediately Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9042> --- .../validate/gst/validate/gst-validate-scenario.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c b/subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c index e34b1e1956..815441126c 100644 --- a/subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c +++ b/subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c @@ -2312,7 +2312,7 @@ done: if (selected_streams && d->message_sid && d->wanted_n_calls >= 1 && d->n_calls == d->wanted_n_calls) { /* Consider action done once we get the STREAM_SELECTED signal */ - gst_validate_action_set_done (gst_validate_action_ref (d->action)); + gst_validate_action_set_done (d->action); gst_bus_disable_sync_message_emission (bus); g_signal_handler_disconnect (bus, d->message_sid); d->message_sid = 0; @@ -2348,7 +2348,7 @@ stream_selection_scenario_stopping_cb (GstValidateScenario * scenario, d->wanted_n_calls, d->n_calls); } - gst_validate_action_set_done (gst_validate_action_ref (d->action)); + gst_validate_action_set_done (d->action); if (bus && d->message_sid) { gst_bus_disable_sync_message_emission (bus); @@ -2912,6 +2912,8 @@ _execute_on_sub_scenario (GstValidateScenario * scenario, data->subaction_done_sigid); data->subaction_done_sigid = 0; } + + gst_validate_action_set_done (subaction); } g_mutex_unlock (&data->sigid_lock); validate_action_foreign_scenario_data_unref (data);