Ack! On 2015-03-31 11:39, Tanu Kaskinen wrote: > When a sink or source is freed, there may be pending volume changes that > didn't get applied before the IO thread got torn down. Those pending > changes need to be freed. > > The memory leak was reported here: > http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/23162/focus=23169 > > Reported-by: Alexander E. Patrakov <patrakov at gmail.com> > --- > src/pulsecore/sink.c | 2 ++ > src/pulsecore/source.c | 2 ++ > 2 files changed, 4 insertions(+) > > diff --git a/src/pulsecore/sink.c b/src/pulsecore/sink.c > index dafd1cc..f29a9b7 100644 > --- a/src/pulsecore/sink.c > +++ b/src/pulsecore/sink.c > @@ -727,6 +727,8 @@ static void sink_free(pa_object *o) { > > pa_log_info("Freeing sink %u \"%s\"", s->index, s->name); > > + pa_sink_volume_change_flush(s); > + > if (s->monitor_source) { > pa_source_unref(s->monitor_source); > s->monitor_source = NULL; > diff --git a/src/pulsecore/source.c b/src/pulsecore/source.c > index eb27621..97f6cd9 100644 > --- a/src/pulsecore/source.c > +++ b/src/pulsecore/source.c > @@ -662,6 +662,8 @@ static void source_free(pa_object *o) { > > pa_log_info("Freeing source %u \"%s\"", s->index, s->name); > > + pa_source_volume_change_flush(s); > + > pa_idxset_free(s->outputs, NULL); > pa_hashmap_free(s->thread_info.outputs); > > -- David Henningsson, Canonical Ltd. https://launchpad.net/~diwic