Skip navigation.
 
mlRe: CIImage (TIFFRepresentation) memory leak
FROM : Gary L. Wade
DATE : Mon Mar 10 21:21:54 2008

If all the code you're using is present, it looks to me like you're not releasing the object pointed at by image; the object returned by imageWithData is not an auto-released object.

>I narrowed this down by removing the filters, and the leak is still
>there. And what a leak! Everytime I draw the view the memory usage
>increases with the size of the drawn image. Yet this exact same code
>is used in the Core Image Programming Guide. So I figure it's a bug in
>Core Image. But how can I avoid it?
>
>
> - (void) drawRect:(NSRect)rect
>{
>        CIImage *image = [CIImage imageWithData:[[self image]
>TIFFRepresentation]];
>      if (image !=nil) {
>
>                CGRect cg;
>                CIContext *context = [[NSGraphicsContext
>currentContext] CIContext];
>                cg = CGRectMake(NSMinX(rect), NSMinY(rect),
>NSWidth(rect), NSHeight(rect));
>                [context drawImage:image
>                                        atPoint:cg.origin
>                                        fromRect:cg];
>
>        }
> }
>
>On Mon, Mar 10, 2008 at 5:33 PM,  <<email_removed>> wrote:

>> Hi,
>>
>>  I'm applying a Core Image filter to an image in a NSImageView
>>  subclass. The drawing works fine, except it leaks memory, not sure
>>  why. This is my drawRect method. Anything wrong with it? Thanks.
>>
>>
>>  - (void) drawRect:(NSRect)rect
>>  {
>>
>>        [[self image] setFlipped:YES];
>>        CIImage *image = [CIImage imageWithData:[[self image]

>TIFFRepresentation]];

>>        if (image !=nil) {
>>                CIFilter *filter = [CIFilter

>filterWithName:@"CIGaussianBlur"];

>>                [filter setDefaults];
>>                [filter setValue: image forKey: @"inputImage"];
>>                [filter setValue: [NSNumber numberWithFloat:0.7] forKey:

>@"inputRadius"];

>>                image = [filter valueForKey: @"outputImage"];
>>
>>                filter = [CIFilter

>filterWithName:@"CIPerspectiveTransform"];

>>                [filter setDefaults];
>>                [filter setValue: image forKey: @"inputImage"];
>>                [filter setValue:[CIVector vectorWithX:NSMinX(rect)

>Y:NSMinY(rect) +

>>  bLeft ] forKey:@"inputBottomLeft"];
>>                [filter setValue:[CIVector vectorWithX:NSMaxX(rect)

>Y:NSMinY(rect) +

>>  bRight ] forKey:@"inputBottomRight"];
>>                [filter setValue:[CIVector vectorWithX:NSMinX(rect)

>Y:NSMaxY(rect) +

>>  tLeft ] forKey:@"inputTopLeft"];
>>                [filter setValue:[CIVector vectorWithX:NSMaxX(rect)

>Y:NSMaxY(rect) +

>>  tRight ] forKey:@"inputTopRight"];
>>                image = [filter valueForKey: @"outputImage"];
>>
>>                CGRect cg;
>>                CIContext *context = [[NSGraphicsContext currentContext]

>CIContext];

>>                cg = CGRectMake(NSMinX(rect), NSMinY(rect), NSWidth(rect),

>NSHeight(rect));

>>                [context drawImage:image
>>                                        atPoint:cg.origin
>>                                        fromRect:cg];
>>
>>        }
>>  }
>>

>_______________________________________________
>
>Cocoa-dev mailing list (<email_removed>)
>
>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:
>http://lists.apple.com/mailman/options/cocoa-dev/<email_removed>
>
>
>This email sent to <email_removed>

Related mailsAuthorDate
mlCIImage (TIFFRepresentation) memory leak slasktrattenator Mar 10, 17:33
mlRe: CIImage (TIFFRepresentation) memory leak slasktrattenator Mar 10, 21:03
mlRe: CIImage (TIFFRepresentation) memory leak Gary L. Wade Mar 10, 21:21
mlRe: CIImage (TIFFRepresentation) memory leak Brady Duga Mar 10, 21:34
mlRe: CIImage (TIFFRepresentation) memory leak slasktrattenator Mar 10, 21:58
mlRe: CIImage (TIFFRepresentation) memory leak Gorazd Krosl Mar 10, 22:02
mlRe: CIImage (TIFFRepresentation) memory leak Rob Keniger Mar 11, 04:46
mlRe: CIImage (TIFFRepresentation) memory leak slasktrattenator Mar 11, 11:53