summaryrefslogtreecommitdiffstats
path: root/src/pulsecore/sink.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2009-04-10 01:21:16 +0200
committerLennart Poettering <lennart@poettering.net>2009-04-10 01:21:16 +0200
commit9ae8ca2c3754abb9b6f6ce94c414c12d87419ac0 (patch)
tree3586b254321aa57758162f1648467fcd55ac2ea6 /src/pulsecore/sink.c
parentdcd4a73df94b0e9083f72d79f81083961bd15746 (diff)
core: memory leak, fix ref counting when moving streams
Diffstat (limited to 'src/pulsecore/sink.c')
-rw-r--r--src/pulsecore/sink.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/pulsecore/sink.c b/src/pulsecore/sink.c
index 4cf7b6c0..2771fecb 100644
--- a/src/pulsecore/sink.c
+++ b/src/pulsecore/sink.c
@@ -515,8 +515,12 @@ pa_queue *pa_sink_move_all_start(pa_sink *s) {
for (i = PA_SINK_INPUT(pa_idxset_first(s->inputs, &idx)); i; i = n) {
n = PA_SINK_INPUT(pa_idxset_next(s->inputs, &idx));
+ pa_sink_input_ref(i);
+
if (pa_sink_input_start_move(i) >= 0)
- pa_queue_push(q, pa_sink_input_ref(i));
+ pa_queue_push(q, i);
+ else
+ pa_sink_input_unref(i);
}
return q;