[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