Re: Malloc leak from ImageIO library
Re: Malloc leak from ImageIO library
- Subject: Re: Malloc leak from ImageIO library
- From: Ken Ferry <email@hidden>
- Date: Thu, 15 Oct 2009 13:05:42 -0700
Hi Karolis,
That one's a false positive. The JPEG2000 library allocates memory at
pointer p, but holds onto a pointer q and constant k such that q + k is p.
Leaks cannot tell that the app can still get at the pointer, so it thinks
the memory has been leaked.
Of course, one never wants to see false positives. Either leaks or the
library should be modified to make this go away. There's a bug for it.
-Ken
Cocoa Frameworks
On Thu, Oct 15, 2009 at 11:51 AM, Karolis Ramanauskas <email@hidden>wrote:
> Good day,
>
> I was running my app with Instruments -> Leaks. This is a
> document-based-application. Whenever I save or open a file I get this leak:
>
> Category: Malloc 4.50 KB
> Event Type: Malloc
> RefCt: 1
> Address: 0x103108000
> Size: 4608
> Responsible Library: ImageIO
> Responsible Caller: du_block::set_max_bytes(int, bool)
>
> Is there anything I can do about it? I don't know where to begin... Please
> let me know if any other info is necessary, I could attach .trace file from
> instruments.
>
> Thanks.
>
> Stack trace:
>
> 0 libSystem.B.dylib malloc
> 1 libstdc++.6.dylib operator new(unsigned long)
> 2 libstdc++.6.dylib operator new[](unsigned long)
> 3 ImageIO kdu_block::set_max_bytes(int, bool)
> 4 ImageIO kd_block::retrieve_data(kdu_block*, int)
> 5 ImageIO kdu_subband::open_block(kdu_coords, int*, kdu_thread_env*)
> 6 ImageIO kd_decoder::do_job(kdu_thread_entity*, int)
> 7 ImageIO kd_decoder::pull(kdu_line_buf&, kdu_thread_env*)
> 8 ImageIO kd_synthesis::horizontal_synthesis(kd_vlift_line*, int,
> kdu_thread_env*)
> 9 ImageIO kd_synthesis::pull(kdu_line_buf&, kdu_thread_env*)
> 10 ImageIO kd_multi_component::do_job(kdu_thread_entity*, int)
> 11 ImageIO kd_multi_synthesis::get_line(kd_multi_line*, int,
> kdu_thread_env*)
> 12 ImageIO kd_multi_synthesis::get_line(int, kdu_thread_env*)
> 13 ImageIO kdu_region_decompressor::process_generic(int, int, kdu_coords,
> int, int, int, kdu_dims&, kdu_dims&, int, bool)
> 14 ImageIO kdu_region_decompressor::process(int*, kdu_coords, int, int,
> int, int, kdu_dims&, kdu_dims&)
> 15 ImageIO kdrc_stream::process(int, kdu_dims&, int&)
> 16 ImageIO kdu_region_compositor::process(int, kdu_dims&)
> 17 ImageIO _cg_JP2DecompressBand
> 18 ImageIO getBandProcJP2
> 19 ImageIO glueCopyImageBlockSet
> 20 ImageIO ImageProviderCopyImageBlockSetCallback
> 21 CoreGraphics img_blocks_create
> 22 CoreGraphics img_blocks_extent
> 23 CoreGraphics img_interpolate_extent
> 24 CoreGraphics img_data_lock
> 25 CoreGraphics CGSImageDataLock
> 26 libRIP.A.dylib ripc_AcquireImage
> 27 libRIP.A.dylib ripc_DrawImage
> 28 CoreGraphics CGContextDrawImage
> 29 AppKit __-[NSImageRep
>
> drawInRect:fromRect:operation:fraction:respectFlipped:hints:]_block_invoke_1
> 30 AppKit -[NSImageRep
> drawInRect:fromRect:operation:fraction:respectFlipped:hints:]
> 31 AppKit __-[NSImage
>
> drawInRect:fromRect:operation:fraction:respectFlipped:hints:]_block_invoke_1
> 32 AppKit -[NSImage _usingBestRepresentationForRect:context:hints:body:]
> 33 AppKit -[NSImage
> drawInRect:fromRect:operation:fraction:respectFlipped:hints:]
> 34 AppKit -[NSCompositeImageRep draw]
> 35 AppKit -[NSImageRep drawInRect:]
> 36 AppKit __-[NSImageRep
>
> drawInRect:fromRect:operation:fraction:respectFlipped:hints:]_block_invoke_2
> 37 AppKit __-[NSImageRep
>
> drawInRect:fromRect:operation:fraction:respectFlipped:hints:]_block_invoke_1
> 38 AppKit -[NSImageRep
> drawInRect:fromRect:operation:fraction:respectFlipped:hints:]
> 39 AppKit -[NSImageRep
> _createCGImageForProposedRect:context:hints:flipped:]
> 40 AppKit -[NSImageRep CGImageForProposedRect:context:hints:]
> 41 AppKit -[NSImageRep CGImageForProposedRect:context:hints:flipped:]
> 42 AppKit -[NSImage _createSnapshotRepForRep:rect:context:processedHints:]
> 43 AppKit -[NSImage _snapshotRepForRep:rect:context:processedHints:]
> 44 AppKit __-[NSImage
>
> drawInRect:fromRect:operation:fraction:respectFlipped:hints:]_block_invoke_1
> 45 AppKit -[NSImage _usingBestRepresentationForRect:context:hints:body:]
> 46 AppKit -[NSImage
> drawInRect:fromRect:operation:fraction:respectFlipped:hints:]
> 47 AppKit -[NSImage
>
> _drawMappingAlignmentRectToRect:withState:backgroundStyle:operation:fraction:flip:hints:]
> 48 AppKit -[NSImageCell drawInteriorWithFrame:inView:]
> 49 AppKit -[NSImageCell drawWithFrame:inView:]
> 50 AppKit -[NSControl drawRect:]
> 51 AppKit -[NSView _drawRect:clip:]
> 52 AppKit -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:]
> 53 AppKit -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:]
> 54 AppKit -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:]
> 55 AppKit -[NSView
>
> _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
> 56 AppKit -[NSThemeFrame
>
> _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
> 57 AppKit -[NSView
> _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:]
> 58 AppKit -[NSView displayIfNeeded]
> 59 AppKit -[NSWindow
> _reallyDoOrderWindow:relativeTo:findKey:forCounter:force:isModal:]
> 60 AppKit -[NSApplication _orderFrontModalWindow:relativeToWindow:]
> 61 AppKit -[NSApplication
>
> _commonBeginModalSessionForWindow:relativeToWindow:modalDelegate:didEndSelector:contextInfo:]
> 62 AppKit -[NSAlert
> beginSheetModalForWindow:modalDelegate:didEndSelector:contextInfo:]
> 63 AppKit -[NSSavePanel _overwriteExistingFileCheck:]
> 64 AppKit -[NSSavePanel _okForSaveMode]
> 65 AppKit -[NSSavePanel ok:]
> 66 AppKit -[NSApplication sendAction:to:from:]
> 67 AppKit -[NSControl sendAction:to:]
> 68 AppKit -[NSCell trackMouse:inRect:ofView:untilMouseUp:]
> 69 AppKit -[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:]
> 70 AppKit -[NSControl mouseDown:]
> 71 AppKit -[NSWindow sendEvent:]
> 72 AppKit -[NSApplication sendEvent:]
> 73 AppKit -[NSApplication run]
> 74 AppKit NSApplicationMain
> 75 Vaucanson main /Users/Karolis/Projects/KROrganismModel/main.m:5
> 76 Vaucanson start
> _______________________________________________
>
> Cocoa-dev mailing list (email@hidden)
>
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
>
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden