Skip to content

LV: leaking memory #5

Closed
Closed

Description

@rigid

==27455== Memcheck, a memory error detector
==27455== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
==27455== Using Valgrind-3.6.1 and LibVEX; rerun with -h for copyright info
==27455== Command: lv-tool -a plazma
==27455==
lv-tool v0.1
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:408:print_cpu_info: CPU: Number of CPUs: 2
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:409:print_cpu_info: CPU: type 3
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:412:print_cpu_info: CPU: X86 type 6
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:413:print_cpu_info: CPU: cacheline 64
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:414:print_cpu_info: CPU: MMX 0
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:415:print_cpu_info: CPU: MMX2 0
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:416:print_cpu_info: CPU: SSE 0
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:417:print_cpu_info: CPU: SSE2 0
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:418:print_cpu_info: CPU: 3DNow 0
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:419:print_cpu_info: CPU: 3DNowExt 0
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin_registry.cpp:80:LV::PluginRegistry::PluginRegistry(): Initializing plugin registry
INFO /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin_registry.cpp:110:void LV::PluginRegistry::add_path(const std::string&): Adding to plugin search path: /usr/local/lib/libvisual-0.5/actor
INFO /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin_registry.cpp:110:void LV::PluginRegistry::add_path(const std::string&): Adding to plugin search path: /usr/local/lib/libvisual-0.5/input
INFO /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin_registry.cpp:110:void LV::PluginRegistry::add_path(const std::string&): Adding to plugin search path: /usr/local/lib/libvisual-0.5/morph
INFO /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin_registry.cpp:110:void LV::PluginRegistry::add_path(const std::string&): Adding to plugin search path: /usr/local/lib/libvisual-0.5/transform
INFO /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin_registry.cpp:110:void LV::PluginRegistry::add_path(const std::string&): Adding to plugin search path: /home/daniel/.libvisual/actor
INFO /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin_registry.cpp:110:void LV::PluginRegistry::add_path(const std::string&): Adding to plugin search path: /home/daniel/.libvisual/input
INFO /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin_registry.cpp:110:void LV::PluginRegistry::add_path(const std::string&): Adding to plugin search path: /home/daniel/.libvisual/morph
INFO /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin_registry.cpp:110:void LV::PluginRegistry::add_path(const std::string&): Adding to plugin search path: /home/daniel/.libvisual/transform
Loading actor 'plazma'...
Loading input 'debug'...
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_bin.c:418:visual_bin_set_depth: old: 0 new: 1
WARNING /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_video.c:336:visual_video_set_pitch: Assertion `pitch > 0' failed
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_bin.c:418:visual_bin_set_depth: old: 1 new: 1
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin.cpp:455:int visual_plugin_realize(VisPluginData_): Activating plugin 'plazma'
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin.cpp:455:int visual_plugin_realize(VisPluginData_): Activating plugin 'debug'
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_bin.c:293:visual_bin_sync: starting sync
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_bin.c:326:visual_bin_sync: setting new video from actvideo 1 1
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_bin.c:335:visual_bin_sync: one last video pitch check 320 depth old 1 forcedmain 1 noevent 0
INFO /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_actor.cpp:356:int visual_actor_video_negotiate(VisActor_, int, int, int): negotiating plugin Plazma plugin
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_bin.c:349:visual_bin_sync: pitch after main actor negotiate 320
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_bin.c:377:visual_bin_sync: end sync function
==27455==
==27455== HEAP SUMMARY:
==27455== in use at exit: 1,180,582 bytes in 1,320 blocks
==27455== total heap usage: 63,010 allocs, 61,690 frees, 54,953,302 bytes allocated
==27455==
==27455== 1 bytes in 1 blocks are definitely lost in loss record 1 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x452F62E: _XlcDefaultMapModifiers (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x452F6AE: XSetLocaleModifiers (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x40EDAA9: XSetLocaleModifiers (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F540A: create_aux_windows (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F60A4: X11_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40E5FB6: SDL_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7AA0: SDL_InitSubSystem (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7B6F: SDL_Init (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x80564A2: (anonymous namespace)::SDLDriver::create(VisVideoDepth, VisVideoAttributeOptions const, unsigned int, unsigned int, bool) (sdl_driver.cpp:87)
==27455== by 0x8052F11: SADisplay::create(VisVideoDepth, VisVideoAttributeOptions const, unsigned int, unsigned int, bool) (display.cpp:76)
==27455== by 0x80522D3: main (lv-tool.cpp:346)
==27455==
==27455== 16 bytes in 2 blocks are definitely lost in loss record 28 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x42D0E6C: strdup (in /lib/libc-2.13.so)
==27455== by 0x453D95C: ??? (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x453CF5E: _XimEncodeLocalICAttr (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x453E041: _XimSetICValueData (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x45399B2: _XimLocalCreateIC (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x452256D: XCreateIC (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x40F54E9: create_aux_windows (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F60A4: X11_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40E5FB6: SDL_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7AA0: SDL_InitSubSystem (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7B6F: SDL_Init (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455==
==27455== 23 bytes in 1 blocks are definitely lost in loss record 40 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x4DEA4BE: ???
==27455== by 0x400E3A8: _dl_init (in /lib/ld-2.13.so)
==27455== by 0x4012270: dl_open_worker (in /lib/ld-2.13.so)
==27455== by 0x400E14F: _dl_catch_error (in /lib/ld-2.13.so)
==27455== by 0x4011B4B: _dl_open (in /lib/ld-2.13.so)
==27455== by 0x4128D3D: dlopen_doit (in /lib/libdl-2.13.so)
==27455== by 0x400E14F: _dl_catch_error (in /lib/ld-2.13.so)
==27455== by 0x41293CB: _dlerror_run (in /lib/libdl-2.13.so)
==27455== by 0x4128DE1: dlopen@@GLIBC_2.1 (in /lib/libdl-2.13.so)
==27455== by 0x4098365: visual_plugin_get_reference (lv_plugin.cpp:480)
==27455== by 0x409B64C: LV::PluginRegistry::Impl::get_plugins_from_dir(std::vector<VisPluginRef, std::allocator<VisPluginRef> >&, std::string const&) (lv_plugin_registry.cpp:212)
==27455==
==27455== 23 bytes in 1 blocks are definitely lost in loss record 41 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x4D924BE: ???
==27455== by 0x400E3A8: _dl_init (in /lib/ld-2.13.so)
==27455== by 0x4012270: dl_open_worker (in /lib/ld-2.13.so)
==27455== by 0x400E14F: _dl_catch_error (in /lib/ld-2.13.so)
==27455== by 0x4011B4B: _dl_open (in /lib/ld-2.13.so)
==27455== by 0x4128D3D: dlopen_doit (in /lib/libdl-2.13.so)
==27455== by 0x400E14F: _dl_catch_error (in /lib/ld-2.13.so)
==27455== by 0x41293CB: _dlerror_run (in /lib/libdl-2.13.so)
==27455== by 0x4128DE1: dlopen@@GLIBC_2.1 (in /lib/libdl-2.13.so)
==27455== by 0x4098365: visual_plugin_get_reference (lv_plugin.cpp:480)
==27455== by 0x409B64C: LV::PluginRegistry::Impl::get_plugins_from_dir(std::vector<VisPluginRef, std::allocator<VisPluginRef> >&, std::string const&) (lv_plugin_registry.cpp:212)
==27455==
==27455== 23 bytes in 1 blocks are definitely lost in loss record 42 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x560C4BE: ???
==27455== by 0x400E3A8: _dl_init (in /lib/ld-2.13.so)
==27455== by 0x4012270: dl_open_worker (in /lib/ld-2.13.so)
==27455== by 0x400E14F: _dl_catch_error (in /lib/ld-2.13.so)
==27455== by 0x4011B4B: _dl_open (in /lib/ld-2.13.so)
==27455== by 0x4128D3D: dlopen_doit (in /lib/libdl-2.13.so)
==27455== by 0x400E14F: _dl_catch_error (in /lib/ld-2.13.so)
==27455== by 0x41293CB: _dlerror_run (in /lib/libdl-2.13.so)
==27455== by 0x4128DE1: dlopen@@GLIBC_2.1 (in /lib/libdl-2.13.so)
==27455== by 0x4098365: visual_plugin_get_reference (lv_plugin.cpp:480)
==27455== by 0x409B64C: LV::PluginRegistry::Impl::get_plugins_from_dir(std::vector<VisPluginRef, std::allocator<VisPluginRef> >&, std::string const&) (lv_plugin_registry.cpp:212)
==27455==
==27455== 92 bytes in 4 blocks are definitely lost in loss record 164 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x4D6C4BE: ???
==27455== by 0x400E3A8: _dl_init (in /lib/ld-2.13.so)
==27455== by 0x4012270: dl_open_worker (in /lib/ld-2.13.so)
==27455== by 0x400E14F: _dl_catch_error (in /lib/ld-2.13.so)
==27455== by 0x4011B4B: _dl_open (in /lib/ld-2.13.so)
==27455== by 0x4128D3D: dlopen_doit (in /lib/libdl-2.13.so)
==27455== by 0x400E14F: _dl_catch_error (in /lib/ld-2.13.so)
==27455== by 0x41293CB: _dlerror_run (in /lib/libdl-2.13.so)
==27455== by 0x4128DE1: dlopen@@GLIBC_2.1 (in /lib/libdl-2.13.so)
==27455== by 0x4098365: visual_plugin_get_reference (lv_plugin.cpp:480)
==27455== by 0x409B64C: LV::PluginRegistry::Impl::get_plugins_from_dir(std::vector<VisPluginRef, std::allocator<VisPluginRef> >&, std::string const&) (lv_plugin_registry.cpp:212)
==27455==
==27455== 112 (8 direct, 104 indirect) bytes in 1 blocks are definitely lost in loss record 171 of 260
==27455== at 0x4024E7A: realloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x4526F84: ??? (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x4527868: ??? (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x45288ED: ??? (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x4528F45: _XlcCreateLC (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x45427A2: _XlcDefaultLoader (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x452F209: _XOpenLC (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x452F2E8: _XlcCurrentLC (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x452F680: XSetLocaleModifiers (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x40EDAA9: XSetLocaleModifiers (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F53B5: create_aux_windows (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F60A4: X11_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455==
==27455== 120 bytes in 1 blocks are definitely lost in loss record 172 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x4074432: visual_event_queue_new (lv_event.c:100)
==27455== by 0x80523B3: main (lv-tool.cpp:361)
==27455==
==27455== 124 bytes in 1 blocks are definitely lost in loss record 174 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x45F0668: ??? (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x45F0721: ??? (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x45F0344: xcb_connect_to_display_with_auth_info (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x45F03FE: xcb_connect (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x4516E2E: _XConnectXCB (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x450A280: XOpenDisplay (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x40ED121: XOpenDisplay (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F45ED: X11_Available (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40E5E29: SDL_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7AA0: SDL_InitSubSystem (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7B6F: SDL_Init (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455==
==27455== 124 bytes in 1 blocks are definitely lost in loss record 175 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x45F0668: ??? (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x45F0721: ??? (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x45F0344: xcb_connect_to_display_with_auth_info (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x45F03FE: xcb_connect (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x4516E2E: _XConnectXCB (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x450A280: XOpenDisplay (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x40ED121: XOpenDisplay (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F5E3E: X11_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40E5FB6: SDL_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7AA0: SDL_InitSubSystem (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7B6F: SDL_Init (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455==
==27455== 124 bytes in 1 blocks are definitely lost in loss record 176 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x45F0668: ??? (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x45F0721: ??? (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x45F0344: xcb_connect_to_display_with_auth_info (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x45F03FE: xcb_connect (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x4516E2E: _XConnectXCB (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x450A280: XOpenDisplay (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x40ED121: XOpenDisplay (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F5E5F: X11_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40E5FB6: SDL_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7AA0: SDL_InitSubSystem (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7B6F: SDL_Init (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455==
==27455== 202 (12 direct, 190 indirect) bytes in 1 blocks are definitely lost in loss record 186 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x408345D: visual_list_add (lv_list.c:284)
==27455== by 0x408758B: visual_param_container_add (lv_param.c:146)
==27455== by 0x40960E1: LV::(anonymous namespace)::init_params(VisParamContainer) (lv_libvisual.cpp:80)
==27455== by 0x409626D: LV::System::System(int&, char**&) (lv_libvisual.cpp:149)
==27455== by 0x40A1564: LV::System::init(int&, char**&) (lv_libvisual.h:61)
==27455== by 0x40A14CC: visual_init (lv_libvisual_c.cpp:24)
==27455== by 0x8051F7C: main (lv-tool.cpp:290)
==27455==
==27455== 980 (68 direct, 912 indirect) bytes in 1 blocks are definitely lost in loss record 222 of 260
==27455== at 0x4024E7A: realloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x4526F84: ??? (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x4527868: ??? (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x45288ED: ??? (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x4528F45: _XlcCreateLC (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x4545A7E: _XlcUtf8Loader (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x452F209: _XOpenLC (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x452F2E8: _XlcCurrentLC (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x452F680: XSetLocaleModifiers (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x40EDAA9: XSetLocaleModifiers (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F540A: create_aux_windows (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F60A4: X11_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455==
==27455== 1,036 (12 direct, 1,024 indirect) bytes in 1 blocks are definitely lost in loss record 231 of 260
==27455== at 0x40249C7: operator new(unsigned int) (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x40A1A95: visual_palette_clone (lv_palette_c.cpp:42)
==27455== by 0x4078590: visual_video_set_palette (lv_video.c:285)
==27455== by 0x4091739: visual_actor_run (lv_actor.cpp:556)
==27455== by 0x40779C2: visual_bin_run (lv_bin.c:861)
==27455== by 0x80526B2: main (lv-tool.cpp:505)
==27455==
==27455== 1,176 (112 direct, 1,064 indirect) bytes in 4 blocks are definitely lost in loss record 234 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x4097D3D: visual_plugin_ref_new (lv_plugin.cpp:284)
==27455== by 0x40984F9: visual_plugin_get_reference (lv_plugin.cpp:546)
==27455== by 0x409B64C: LV::PluginRegistry::Impl::get_plugins_from_dir(std::vector<VisPluginRef, std::allocator<VisPluginRef> >&, std::string const&) (lv_plugin_registry.cpp:212)
==27455== by 0x409B197: LV::PluginRegistry::add_path(std::string const&) (lv_plugin_registry.cpp:115)
==27455== by 0x409ADCB: LV::PluginRegistry::PluginRegistry() (lv_plugin_registry.cpp:84)
==27455== by 0x4096381: LV::PluginRegistry::init() (lv_plugin_registry.h:26)
==27455== by 0x4096244: LV::System::System(int&, char**&) (lv_libvisual.cpp:146)
==27455== by 0x40A1564: LV::System::init(int&, char**&) (lv_libvisual.h:61)
==27455== by 0x40A14CC: visual_init (lv_libvisual_c.cpp:24)
==27455==
==27455== 2,382 (196 direct, 2,186 indirect) bytes in 7 blocks are definitely lost in loss record 245 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x4097D3D: visual_plugin_ref_new (lv_plugin.cpp:284)
==27455== by 0x40984F9: visual_plugin_get_reference (lv_plugin.cpp:546)
==27455== by 0x409B64C: LV::PluginRegistry::Impl::get_plugins_from_dir(std::vector<VisPluginRef, std::allocator<VisPluginRef> >&, std::string const&) (lv_plugin_registry.cpp:212)
==27455== by 0x409B197: LV::PluginRegistry::add_path(std::string const&) (lv_plugin_registry.cpp:115)
==27455== by 0x409AE1A: LV::PluginRegistry::PluginRegistry() (lv_plugin_registry.cpp:85)
==27455== by 0x4096381: LV::PluginRegistry::init() (lv_plugin_registry.h:26)
==27455== by 0x4096244: LV::System::System(int&, char**&) (lv_libvisual.cpp:146)
==27455== by 0x40A1564: LV::System::init(int&, char**&) (lv_libvisual.h:61)
==27455== by 0x40A14CC: visual_init (lv_libvisual_c.cpp:24)
==27455==
==27455== 4,096 bytes in 1 blocks are possibly lost in loss record 247 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x408CE99: visual_buffer_allocate_data (lv_buffer.c:172)
==27455== by 0x408CA84: visual_buffer_new_allocate (lv_buffer.c:91)
==27455== by 0x4081299: input_interleaved_stereo (lv_audio.c:1336)
==27455== by 0x407EC2E: visual_audio_samplepool_input (lv_audio.c:708)
==27455== by 0x4030B97: inp_debug_upload (input_debug.c:166)
==27455== by 0x4095F64: visual_input_run (lv_input.cpp:183)
==27455== by 0x407771C: visual_bin_run (lv_bin.c:807)
==27455== by 0x80526B2: main (lv-tool.cpp:505)
==27455==
==27455== 5,180 (1,036 direct, 4,144 indirect) bytes in 1 blocks are definitely lost in loss record 248 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x5515227: ???
==27455== by 0x551424A: ???
==27455== by 0x5508690: ???
==27455== by 0x54DE7FA: ???
==27455== by 0x553F51F: ???
==27455== by 0x54DD95C: ???
==27455== by 0x400E2A5: call_init (in /lib/ld-2.13.so)
==27455== by 0x400E3A8: _dl_init (in /lib/ld-2.13.so)
==27455== by 0x4012270: dl_open_worker (in /lib/ld-2.13.so)
==27455== by 0x400E14F: _dl_catch_error (in /lib/ld-2.13.so)
==27455== by 0x4011B4B: _dl_open (in /lib/ld-2.13.so)
==27455==
==27455== 6,383 (504 direct, 5,879 indirect) bytes in 18 blocks are definitely lost in loss record 250 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x4097D3D: visual_plugin_ref_new (lv_plugin.cpp:284)
==27455== by 0x40984F9: visual_plugin_get_reference (lv_plugin.cpp:546)
==27455== by 0x409B64C: LV::PluginRegistry::Impl::get_plugins_from_dir(std::vector<VisPluginRef, std::allocator<VisPluginRef> >&, std::string const&) (lv_plugin_registry.cpp:212)
==27455== by 0x409B197: LV::PluginRegistry::add_path(std::string const&) (lv_plugin_registry.cpp:115)
==27455== by 0x409AD7C: LV::PluginRegistry::PluginRegistry() (lv_plugin_registry.cpp:83)
==27455== by 0x4096381: LV::PluginRegistry::init() (lv_plugin_registry.h:26)
==27455== by 0x4096244: LV::System::System(int&, char**&) (lv_libvisual.cpp:146)
==27455== by 0x40A1564: LV::System::init(int&, char**&) (lv_libvisual.h:61)
==27455== by 0x40A14CC: visual_init (lv_libvisual_c.cpp:24)
==27455==
==27455== 8,192 bytes in 2 blocks are possibly lost in loss record 253 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x408CE99: visual_buffer_allocate_data (lv_buffer.c:172)
==27455== by 0x408CA84: visual_buffer_new_allocate (lv_buffer.c:91)
==27455== by 0x4081274: input_interleaved_stereo (lv_audio.c:1336)
==27455== by 0x407EC2E: visual_audio_samplepool_input (lv_audio.c:708)
==27455== by 0x4030B97: inp_debug_upload (input_debug.c:166)
==27455== by 0x4095F64: visual_input_run (lv_input.cpp:183)
==27455== by 0x407771C: visual_bin_run (lv_bin.c:807)
==27455== by 0x80526B2: main (lv-tool.cpp:505)
==27455==
==27455== 40,960 bytes in 5 blocks are possibly lost in loss record 254 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x408CE99: visual_buffer_allocate_data (lv_buffer.c:172)
==27455== by 0x408CA84: visual_buffer_new_allocate (lv_buffer.c:91)
==27455== by 0x408099D: sample_data_func (lv_audio.c:1261)
==27455== by 0x408C1EA: fixate_with_partial_data_request (lv_ringbuffer.c:323)
==27455== by 0x408BEBF: visual_ringbuffer_get_data_offset (lv_ringbuffer.c:211)
==27455== by 0x408C3AE: visual_ringbuffer_get_data_from_end (lv_ringbuffer.c:370)
==27455== by 0x407D93D: visual_audio_get_sample (lv_audio.c:342)
==27455== by 0x407DCE4: visual_audio_get_sample_mixed (lv_audio.c:426)
==27455== by 0x402B19A: act_plazma_render (actor_plazma.c:235)
==27455==
==27455== 256,000 bytes in 1 blocks are possibly lost in loss record 257 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x402B680: _plazma_init (plazma.c:89)
==27455== by 0x402AEF8: act_plazma_dimension (actor_plazma.c:166)
==27455== by 0x402AF5A: act_plazma_events (actor_plazma.c:180)
==27455== by 0x4097AAD: visual_plugin_events_pump (lv_plugin.cpp:232)
==27455== by 0x4091264: negotiate_video (lv_actor.cpp:438)
==27455== by 0x4090E90: visual_actor_video_negotiate (lv_actor.cpp:365)
==27455== by 0x4075C57: visual_bin_sync (lv_bin.c:346)
==27455== by 0x80523A3: main (lv-tool.cpp:356)
==27455==
==27455== 256,000 bytes in 1 blocks are possibly lost in loss record 258 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x402B6A8: _plazma_init (plazma.c:90)
==27455== by 0x402AEF8: act_plazma_dimension (actor_plazma.c:166)
==27455== by 0x402AF5A: act_plazma_events (actor_plazma.c:180)
==27455== by 0x4097AAD: visual_plugin_events_pump (lv_plugin.cpp:232)
==27455== by 0x4091264: negotiate_video (lv_actor.cpp:438)
==27455== by 0x4090E90: visual_actor_video_negotiate (lv_actor.cpp:365)
==27455== by 0x4075C57: visual_bin_sync (lv_bin.c:346)
==27455== by 0x80523A3: main (lv-tool.cpp:356)
==27455==
==27455== 561,713 (124 direct, 561,589 indirect) bytes in 1 blocks are definitely lost in loss record 260 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x4075078: visual_bin_new (lv_bin.c:101)
==27455== by 0x805200E: main (lv-tool.cpp:298)
==27455==
==27455== LEAK SUMMARY:
==27455== definitely lost: 2,742 bytes in 49 blocks
==27455== indirectly lost: 577,092 bytes in 779 blocks
==27455== possibly lost: 565,248 bytes in 10 blocks
==27455== still reachable: 35,500 bytes in 482 blocks
==27455== suppressed: 0 bytes in 0 blocks
==27455== Reachable blocks (those to which a pointer was found) are not shown.
==27455== To see them, rerun with: --leak-check=full --show-reachable=yes
==27455==
==27455== For counts of detected and suppressed errors, rerun with: -v
==27455== ERROR SUMMARY: 24 errors from 24 contexts (suppressed: 2634 from 14)

Activity

  1. kaixiong commented on Apr 24, 2012

    @kaixiong
    Member

    Was this report produced with --leak-check=full? If it was, then the leaks are not limited to plazma.

  2. rigid commented on Apr 24, 2012

    @rigid
    MemberAuthor

    Chong Kai Xiong reply@reply.github.com schrieb:

    Was this report produced with with --leak-check=full? If it was, then
    the leaks are not limited to plazma.


    Reply to this email directly or view it on GitHub:
    #5 (comment)

    yes it was, but they weren't caused by other actors iirc. can do another check later.

  3. rigid commented on Jan 17, 2013

    @rigid
    MemberAuthor

    you are right, here is the output for lv_analyzer with stdout driver (to remove SDL leaks):

    https://gist.github.com/4556737

  4. kaixiong commented on Feb 4, 2013

    @kaixiong
    Member

    I've closed all the VisParam-related leaks on plugin unloads with 1563c00

    Apart from some plugins not properly freeing their private data pointers after encountering errors during init(), I am confident that there are no serious system-wide leaks left. valgrind --leak-check=full doesn't show anything except leaks within SDL. I believe we can close this issue. Any leaks with individual plugins can be filed separately.

  5. rigid commented on Feb 4, 2013

    @rigid
    MemberAuthor

    still getting some leaks: https://gist.github.com/4708164

  6. kaixiong commented on Feb 4, 2013

    @kaixiong
    Member

    Alright I should've completely fixed the VisPluginData leaks. The ones remaining I can catch are from calls to ORC routines, SDL/Xlib and dlfcn: https://gist.github.com/4708432

  7. rigid commented on Feb 5, 2013

    @rigid
    MemberAuthor

    I still get various leaks, related to RandomContext, DFT, System, PluginRegistry etc: https://gist.github.com/4712770
    If exactly the same command is used (first line of paste), outputs are comparable (use stdout driver to eliminate X/SDL leaks). Though this only covers lv_analyzer, it's a good starting point.

  8. kaixiong commented on Feb 5, 2013

    @kaixiong
    Member

    Try limiting the number of frames with -F for the program to terminate normally. It reveals no leaks for me. Breaking out from lv-tool with Ctrl-C will not call the C++ destructors.

  9. rigid commented on Feb 5, 2013

    @rigid
    MemberAuthor

    indeed that reduces leaked memory significantly, still there are leaks left: https://gist.github.com/4712879
    I'm not sure whether lv-tool should have a signal handler to exit cleanly on ctrl+c ... should it?

  10. kaixiong commented on Feb 5, 2013

    @kaixiong
    Member

    Sure why not? It's quite simple to add on POSIX systems (still looking for a Windows example):
    http://stackoverflow.com/questions/4250013/is-destructor-called-if-sigint-or-sigstp-issued

    Edit: C has a portable way to handle process signals (signal.h)

    I don't really consider the reported leaks in SDL, Xlib or ORC problems we can fix, so they shouldn't be under the scope of this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions