loopback: Fix crashes

Flush the message queue before tearing down, and dest==NULL is valid in case moving failed.

With this my module-loopback finally no longer causes frequent crashes.
This commit is contained in:
Maarten Lankhorst 2012-01-22 14:11:23 +01:00 committed by Colin Guthrie
parent 11cde92fda
commit 2c652b43f9

View file

@ -136,6 +136,7 @@ static void teardown(struct userdata *u) {
pa_assert(u); pa_assert(u);
pa_assert_ctl_context(); pa_assert_ctl_context();
pa_asyncmsgq_flush(u->asyncmsgq, 0);
if (u->sink_input) if (u->sink_input)
pa_sink_input_unlink(u->sink_input); pa_sink_input_unlink(u->sink_input);
@ -360,6 +361,8 @@ static void source_output_moving_cb(pa_source_output *o, pa_source *dest) {
pa_proplist *p; pa_proplist *p;
const char *n; const char *n;
struct userdata *u; struct userdata *u;
if (!dest)
return;
pa_source_output_assert_ref(o); pa_source_output_assert_ref(o);
pa_assert_ctl_context(); pa_assert_ctl_context();