diff --git a/src/pulsecore/sink-input.c b/src/pulsecore/sink-input.c index c7d99efbf..a7f6d5512 100644 --- a/src/pulsecore/sink-input.c +++ b/src/pulsecore/sink-input.c @@ -645,7 +645,7 @@ void pa_sink_input_unlink(pa_sink_input *i) { bool linked; pa_source_output *o, PA_UNUSED *p = NULL; - pa_assert(i); + pa_sink_input_assert_ref(i); pa_assert_ctl_context(); /* See pa_sink_unlink() for a couple of comments how this function @@ -721,9 +721,7 @@ static void sink_input_free(pa_object *o) { pa_assert(i); pa_assert_ctl_context(); pa_assert(pa_sink_input_refcnt(i) == 0); - - if (PA_SINK_INPUT_IS_LINKED(i->state)) - pa_sink_input_unlink(i); + pa_assert(!PA_SINK_INPUT_IS_LINKED(i->state)); pa_log_info("Freeing input %u \"%s\"", i->index, i->proplist ? pa_strnull(pa_proplist_gets(i->proplist, PA_PROP_MEDIA_NAME)) : ""); diff --git a/src/pulsecore/sink.c b/src/pulsecore/sink.c index 3f1ef725b..9bdf9be08 100644 --- a/src/pulsecore/sink.c +++ b/src/pulsecore/sink.c @@ -669,7 +669,7 @@ void pa_sink_unlink(pa_sink* s) { bool linked; pa_sink_input *i, PA_UNUSED *j = NULL; - pa_assert(s); + pa_sink_assert_ref(s); pa_assert_ctl_context(); /* Please note that pa_sink_unlink() does more than simply @@ -722,9 +722,7 @@ static void sink_free(pa_object *o) { pa_assert(s); pa_assert_ctl_context(); pa_assert(pa_sink_refcnt(s) == 0); - - if (PA_SINK_IS_LINKED(s->state)) - pa_sink_unlink(s); + pa_assert(!PA_SINK_IS_LINKED(s->state)); pa_log_info("Freeing sink %u \"%s\"", s->index, s->name); diff --git a/src/pulsecore/source-output.c b/src/pulsecore/source-output.c index 6af1543ac..9e951ff61 100644 --- a/src/pulsecore/source-output.c +++ b/src/pulsecore/source-output.c @@ -548,7 +548,8 @@ static void source_output_set_state(pa_source_output *o, pa_source_output_state_ /* Called from main context */ void pa_source_output_unlink(pa_source_output*o) { bool linked; - pa_assert(o); + + pa_source_output_assert_ref(o); pa_assert_ctl_context(); /* See pa_sink_unlink() for a couple of comments how this function @@ -614,9 +615,7 @@ static void source_output_free(pa_object* mo) { pa_assert(o); pa_assert_ctl_context(); pa_assert(pa_source_output_refcnt(o) == 0); - - if (PA_SOURCE_OUTPUT_IS_LINKED(o->state)) - pa_source_output_unlink(o); + pa_assert(!PA_SOURCE_OUTPUT_IS_LINKED(o->state)); pa_log_info("Freeing output %u \"%s\"", o->index, o->proplist ? pa_strnull(pa_proplist_gets(o->proplist, PA_PROP_MEDIA_NAME)) : ""); diff --git a/src/pulsecore/source.c b/src/pulsecore/source.c index 98374ae92..8a527d8a9 100644 --- a/src/pulsecore/source.c +++ b/src/pulsecore/source.c @@ -612,7 +612,7 @@ void pa_source_unlink(pa_source *s) { bool linked; pa_source_output *o, PA_UNUSED *j = NULL; - pa_assert(s); + pa_source_assert_ref(s); pa_assert_ctl_context(); /* See pa_sink_unlink() for a couple of comments how this function @@ -661,9 +661,7 @@ static void source_free(pa_object *o) { pa_assert(s); pa_assert_ctl_context(); pa_assert(pa_source_refcnt(s) == 0); - - if (PA_SOURCE_IS_LINKED(s->state)) - pa_source_unlink(s); + pa_assert(!PA_SOURCE_IS_LINKED(s->state)); pa_log_info("Freeing source %u \"%s\"", s->index, s->name);