24.03.2015 23:47, Alexander E. Patrakov wrote: > 24.03.2015 14:29, David Henningsson wrote: >> Changes since v2: >> - Hui has written a test case to test the new lfe filter's rewind >> functionality >> - Several bugs found and fixed in the lfe filter rewinding; the >> trickiest being >> the fact that we modify our buffer in-place while still needing to >> retain the >> original in case we need to rewind. As a result, we now do an >> extra memcpy (argh). >> - A few minor changes based on Alexander's comments. > > I have tested the series. It works as intended and does not produce > valgrind warnings. Spoke too soon. There are leaks. ==1617== ==1617== HEAP SUMMARY: ==1617== in use at exit: 39,455,544 bytes in 25,632 blocks ==1617== total heap usage: 318,150 allocs, 292,518 frees, 562,741,851 bytes allocated ==1617== ==1617== 1,120 bytes in 7 blocks are definitely lost in loss record 141 of 191 ==1617== at 0x4C28F40: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==1617== by 0x5117806: pa_xmalloc (xmalloc.c:63) ==1617== by 0x4E8C1D4: _pa_xnew_internal (xmalloc.h:64) ==1617== by 0x4E8C1D4: pa_sink_volume_change_new (sink.c:3518) ==1617== by 0x4E8C1D4: pa_sink_volume_change_push (sink.c:3542) ==1617== by 0x4E8C1D4: pa_sink_process_msg (sink.c:2699) ==1617== by 0x19AF08BB: sink_process_msg (alsa-sink.c:1205) ==1617== by 0x4E7DA62: set_shared_volume_within_thread (sink.c:2418) ==1617== by 0x4E8BA38: pa_sink_process_msg (sink.c:2690) ==1617== by 0x19AF08BB: sink_process_msg (alsa-sink.c:1205) ==1617== by 0x4E8B56C: pa_sink_process_msg (sink.c:2535) ==1617== by 0x19AF08BB: sink_process_msg (alsa-sink.c:1205) ==1617== by 0x4E6C8C4: asyncmsgq_read_work (rtpoll.c:564) ==1617== by 0x4E6BDD6: pa_rtpoll_run (rtpoll.c:236) ==1617== by 0x19AF1442: thread_func (alsa-sink.c:1798) ==1617== ==1617== 24,048 bytes in 17 blocks are possibly lost in loss record 188 of 191 ==1617== at 0x4C28F40: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==1617== by 0x5117806: pa_xmalloc (xmalloc.c:63) ==1617== by 0x5117A48: pa_xmemdup (xmalloc.c:94) ==1617== by 0x4E4C41F: pa_lfe_filter_process (lfe-filter.c:132) ==1617== by 0x4E6A05A: pa_resampler_run (resampler.c:1384) ==1617== by 0x4E74E1A: pa_sink_input_peek (sink-input.c:965) ==1617== by 0x4E7D768: fill_mix_info.constprop.21 (sink.c:1016) ==1617== by 0x4E805DE: pa_sink_render_into (sink.c:1256) ==1617== by 0x4E80BB6: pa_sink_render_into_full (sink.c:1340) ==1617== by 0x19AF17A9: mmap_write (alsa-sink.c:645) ==1617== by 0x19AF17A9: thread_func (alsa-sink.c:1716) ==1617== by 0x5C6A5A7: internal_thread_func (thread-posix.c:81) ==1617== by 0x7AF43A3: start_thread (in /lib64/libpthread-2.20.so) ==1617== ==1617== 38,887,962 bytes in 24,066 blocks are definitely lost in loss record 191 of 191 ==1617== at 0x4C28F40: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==1617== by 0x5117806: pa_xmalloc (xmalloc.c:63) ==1617== by 0x5117A48: pa_xmemdup (xmalloc.c:94) ==1617== by 0x4E4C41F: pa_lfe_filter_process (lfe-filter.c:132) ==1617== by 0x4E6A05A: pa_resampler_run (resampler.c:1384) ==1617== by 0x4E74E1A: pa_sink_input_peek (sink-input.c:965) ==1617== by 0x4E7D768: fill_mix_info.constprop.21 (sink.c:1016) ==1617== by 0x4E805DE: pa_sink_render_into (sink.c:1256) ==1617== by 0x4E80BB6: pa_sink_render_into_full (sink.c:1340) ==1617== by 0x19AF17A9: mmap_write (alsa-sink.c:645) ==1617== by 0x19AF17A9: thread_func (alsa-sink.c:1716) ==1617== by 0x5C6A5A7: internal_thread_func (thread-posix.c:81) ==1617== by 0x7AF43A3: start_thread (in /lib64/libpthread-2.20.so) ==1617== ==1617== LEAK SUMMARY: ==1617== definitely lost: 38,889,082 bytes in 24,073 blocks ==1617== indirectly lost: 0 bytes in 0 blocks ==1617== possibly lost: 24,048 bytes in 17 blocks ==1617== still reachable: 542,414 bytes in 1,542 blocks ==1617== suppressed: 0 bytes in 0 blocks ==1617== Reachable blocks (those to which a pointer was found) are not shown. ==1617== To see them, rerun with: --leak-check=full --show-leak-kinds=all ==1617== ==1617== For counts of detected and suppressed errors, rerun with: -v ==1617== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0) -- Alexander E. Patrakov