Oh really? Hm... *looks away in shame*. That makes me feel kind of stupid. I was under the impression it was an autoreleased object as there is no "init", "copy" or "new" in it's name, and the docs don't mention anything about the user being responsible for releasing it. How are you supposed to know this?
Anyway, releasing the object seems to get rid of the leak, but after releasing it I cannot get the view to update it's content. I set a new image in the view, I can see the drawRect method is being called, the new CIImage is being created, but it's not being drawn, the view just keeps showing the first image... :-/ What am I missing? On Mon, Mar 10, 2008 at 9:21 PM, Gary L. Wade <[EMAIL PROTECTED]> wrote: > 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 PROTECTED]> 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 (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: > > >http://lists.apple.com/mailman/options/cocoa-dev/garywade%40desisoftsystems.com > > > > > >This email sent to [EMAIL PROTECTED] > _______________________________________________ > > 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: > http://lists.apple.com/mailman/options/cocoa-dev/slasktrattenator%40gmail.com > > This email sent to [EMAIL PROTECTED] > _______________________________________________ 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: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]