[pulseaudio-commits] src/pulsecore
Tanu Kaskinen
tanuk at kemper.freedesktop.org
Tue Mar 31 10:38:00 PDT 2015
src/pulsecore/sink.c | 2 ++
src/pulsecore/source.c | 2 ++
2 files changed, 4 insertions(+)
New commits:
commit 1f659cc836cdfea956479669d9e26f6c9bad06be
Author: Tanu Kaskinen <tanu.kaskinen at linux.intel.com>
Date: Tue Mar 31 12:39:53 2015 +0300
sink, source: Fix a volume change leak
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>
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);
More information about the pulseaudio-commits
mailing list