There's a godawful mem leak in the gdkpixbuf code (the one that Eog uses) that leaks ~80mb of memory every time a raw (Canon CR2) picture is decoded. ==23053== 82,813,248 bytes in 2 blocks are possibly lost in loss record 254 of 255 ==23053== at 0x4C2269A: calloc (vg_replace_malloc.c:397) ==23053== by 0x1B9D4526: bimedian_demosaic(unsigned short*, unsigned int, unsigned int, or_cfa_pattern, unsigned char*) (bimedian_demosaic.cpp:110) ==23053== by 0x1B9B30DD: OpenRaw::RawFile::getRenderedImage(OpenRaw::BitmapData&, unsigned int) (rawfile.cpp:403) ==23053== by 0x1B776F46: gdk_pixbuf__or_image_stop_load (pixbuf-loader.c:109) ==23053== by 0x6936119: gdk_pixbuf_loader_close (gdk-pixbuf-loader.c:723) ==23053== by 0x435DD6: eog_image_load (eog-image.c:994) ==23053== by 0x43F4F7: eog_job_load_run (eog-jobs.c:291) ==23053== by 0x43EF54: eog_render_thread (eog-job-queue.c:78) ==23053== by 0x85DCA5D: g_thread_create_proxy (gthread.c:635) ==23053== by 0x7032FF6: start_thread (pthread_create.c:297) ==23053== by 0x8B4DF7C: clone (clone.S:112) ==23053== ==23053== ==23053== 248,439,744 bytes in 2 blocks are possibly lost in loss record 255 of 255 ==23053== at 0x4C2269A: calloc (vg_replace_malloc.c:397) ==23053== by 0x1B9D453E: bimedian_demosaic(unsigned short*, unsigned int, unsigned int, or_cfa_pattern, unsigned char*) (bimedian_demosaic.cpp:111) ==23053== by 0x1B9B30DD: OpenRaw::RawFile::getRenderedImage(OpenRaw::BitmapData&, unsigned int) (rawfile.cpp:403) ==23053== by 0x1B776F46: gdk_pixbuf__or_image_stop_load (pixbuf-loader.c:109) ==23053== by 0x6936119: gdk_pixbuf_loader_close (gdk-pixbuf-loader.c:723) ==23053== by 0x435DD6: eog_image_load (eog-image.c:994) ==23053== by 0x43F4F7: eog_job_load_run (eog-jobs.c:291) ==23053== by 0x43EF54: eog_render_thread (eog-job-queue.c:78) ==23053== by 0x85DCA5D: g_thread_create_proxy (gthread.c:635) ==23053== by 0x7032FF6: start_thread (pthread_create.c:297) ==23053== by 0x8B4DF7C: clone (clone.S:112)
Created attachment 25191 [details] [review] libopenraw-plug-a-mem-leak-in-demosaic-code.patch
Good catch. How did I miss it ?
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.