discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=a71b5170dcdef2106ac6551125d171b6687acf63
commit a71b5170dcdef2106ac6551125d171b6687acf63 Author: Mike Blumenkrantz <zm...@osg.samsung.com> Date: Tue May 17 15:05:18 2016 -0400 remove pulse sinks/sources from list before running cbs which access the list this guarantees a crash any time the default sink gets removed since it will always re-set the about-to-be-deleted default sink as the default sink fix T3277 probably --- src/modules/mixer/lib/backends/pulseaudio/pulse.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/modules/mixer/lib/backends/pulseaudio/pulse.c b/src/modules/mixer/lib/backends/pulseaudio/pulse.c index 9660318..15fadea 100644 --- a/src/modules/mixer/lib/backends/pulseaudio/pulse.c +++ b/src/modules/mixer/lib/backends/pulseaudio/pulse.c @@ -257,11 +257,11 @@ _sink_remove_cb(int index, void *data EINA_UNUSED) { if (sink->idx == index) { + ctx->sinks = eina_list_remove_list(ctx->sinks, l); if (ctx->cb) ctx->cb((void *)ctx->userdata, EMIX_SINK_REMOVED_EVENT, (Emix_Sink *)sink); _sink_del(sink); - ctx->sinks = eina_list_remove_list(ctx->sinks, l); break; } } @@ -405,13 +405,13 @@ _sink_input_remove_cb(int index, void *data EINA_UNUSED) { if (input->idx == index) { + ctx->inputs = eina_list_remove_list(ctx->inputs, l); if (ctx->cb) ctx->cb((void *)ctx->userdata, EMIX_SINK_INPUT_REMOVED_EVENT, (Emix_Sink_Input *)input); _sink_input_del(input); - ctx->inputs = eina_list_remove_list(ctx->inputs, l); break; } } @@ -510,12 +510,12 @@ _source_remove_cb(int index, void *data EINA_UNUSED) { if (source->idx == index) { + ctx->sources = eina_list_remove_list(ctx->sources, l); if (ctx->cb) ctx->cb((void *)ctx->userdata, EMIX_SOURCE_REMOVED_EVENT, (Emix_Source *)source); _source_del(source); - ctx->sources = eina_list_remove_list(ctx->sources, l); break; } } --