core: relex validity checks when destructing half-set up source outputs/sink inputs
authorLennart Poettering <lennart@poettering.net>
Sat, 22 Aug 2009 02:04:23 +0000 (04:04 +0200)
committerLennart Poettering <lennart@poettering.net>
Sat, 22 Aug 2009 02:04:23 +0000 (04:04 +0200)
src/pulsecore/sink-input.c
src/pulsecore/source-output.c

index 4137a42..0ad95e6 100644 (file)
@@ -487,7 +487,10 @@ static void sink_input_free(pa_object *o) {
 
     pa_log_info("Freeing input %u \"%s\"", i->index, pa_strnull(pa_proplist_gets(i->proplist, PA_PROP_MEDIA_NAME)));
 
-    pa_assert(!i->thread_info.attached);
+    /* Side note: this function must be able to destruct properly any
+     * kind of sink input in any state, even those which are
+     * "half-moved" or are connected to sinks that have no asyncmsgq
+     * and are hence half-destructed themselves! */
 
     if (i->thread_info.render_memblockq)
         pa_memblockq_free(i->thread_info.render_memblockq);
index b029861..4373340 100644 (file)
@@ -359,8 +359,6 @@ static void source_output_free(pa_object* mo) {
 
     pa_log_info("Freeing output %u \"%s\"", o->index, pa_strnull(pa_proplist_gets(o->proplist, PA_PROP_MEDIA_NAME)));
 
-    pa_assert(!o->thread_info.attached);
-
     if (o->thread_info.delay_memblockq)
         pa_memblockq_free(o->thread_info.delay_memblockq);