[pulseaudio-discuss] [PATCH 2/2] module-equalizer-sink: remove erroneous fixme

Jason Newton nevion at gmail.com
Fri Dec 5 00:38:31 PST 2014


pa_memblockq_drop is guaranteed to drop the chunk we just extracted from the
memblockq which internally unrefs the chunk.
---
I checked just after pa_memblockq_peek and before pa_memblockq_drop calls with the following code:
    pa_log("chunk memblock %p refs: %d ours: %d ro: %d silence: %d",
        chunk->memblock,
        pa_atomic_load((pa_atomic_t *) chunk->memblock),
        pa_memblock_is_ours(chunk->memblock),
        pa_memblock_is_read_only(chunk->memblock),
        pa_memblock_is_silence(chunk->memblock)
    );
The refcnt was 2 at this point consistently and I set a watch point on the refcnt internal to the memblock
and noticed pa_memblockq_drop modifies this to 1.  This makes sense since we are telling the memblock to drop
the entire memblock (in bytes).

 src/modules/module-equalizer-sink.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/src/modules/module-equalizer-sink.c b/src/modules/module-equalizer-sink.c
index 3acca71..d6cc3aa 100644
--- a/src/modules/module-equalizer-sink.c
+++ b/src/modules/module-equalizer-sink.c
@@ -674,8 +674,6 @@ END:
     pa_assert(chunk->memblock);
     pa_memblockq_drop(u->output_q, chunk->length);
 
-    /** FIXME: Uh? you need to unref the chunk here! */
-
     //pa_log_debug("gave %ld", chunk->length/fs);
     //pa_log_debug("end pop");
     return 0;
-- 
2.1.2



More information about the pulseaudio-discuss mailing list