Hello friends, The enclosed procedure is producing a NSImage from another NSImage, by cropping in a NSRect. The resulting sub-Image feeds an imageView in the APP Interface and the may change frequently, then being hopefully disposed by ARC The last line of the procedure : NSImage *subImage = [[NSImage alloc] initWithCGImage:subImageRef size:NSZeroSize]; Generates a leak problem.
it is quite unclear if i should release or not the subImageRef. If I release, the app crashes soon after. If I don’t release, Instrument/Leaks reports a leak of subImageRef after each call. Obviously, ARC never releases subImageRef which, as far as I understand, is owned by the subImage after the call. Digging the web , apple doc, and various AI, did not provide a solution to this dilemme. I would greatly appreciate some help on this Happy summer.. JP C //============================================================================= + (NSImage *)getSubImageFromImage:(NSImage *)image atRect:(NSRect)rect //============================================================================= { // Convert the NSImage to a CGImageRef CGImageRef imageRef= nil, subImageRef= nil; imageRef = [image CGImageForProposedRect:NULL context:nil hints:nil]; if (imageRef == nil ) { return nil; } // Failed to create CGImageRef // Get the subimage from the CGImageRef subImageRef = CGImageCreateWithImageInRect(imageRef, rect); CFRelease(imageRef); if(subImageRef == nil ) { return nil; } // Failed to create subImageRef // Convert the subimage CGImageRef to an NSImage NSImage *subImage = [[NSImage alloc] initWithCGImage:subImageRef size:NSZeroSize]; // CFRelease(subImageRef); // it is quite unclear if i should release the subImageRef //If I release, the app crashes soon after. // If i dont release Instrument/Leaks report a leak at next call. // The subImage goes to a NSbutton in the interface, and will also soon be replaced by another one, producing a leak of subImageRef return subImage; }// getSubImageFromImage _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com