On Thu, 20 Oct 2011 17:38:03 -0400, Bill Cheeseman <[email protected]> said:
>
>Specifically, if your Cocoa method returns a CFTypeRef object retained, and
>you don't put "Copy" or "Create" in the method name, Analyze reports a
>"potential" memory leak. Go back and insert "Copy" or "Create" into the method
>name, and Analyze no longer reports a potential memory leak. To me, it makes
>all the sense in the world to apply the "create rule" to Cocoa methods that
>return Core Foundation CFTypeRef objects.
I just tried that it and it didn't help:
- (CGContextRef) bitmapContextCreate:(CGSize)size {
int bitmapBytesPerRow = (size.width * 4);
bitmapBytesPerRow += (16 - bitmapBytesPerRow%16)%16;
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = NULL;
context = CGBitmapContextCreate(NULL, size.width, size.height,
8, bitmapBytesPerRow, colorSpace, kCGImageAlphaPremultipliedLast);
CGColorSpaceRelease(colorSpace);
return context;
}
As long as I am returning a context obtained with CGBitmapContextCreate and not
autoreleased, it doesn't matter what I name the method: the analyzer is
unhappy. And under ARC it isn't clear what I can do about this, since I can't
autorelease anything and I can't invite ARC to do so (and anyway I don't want
to). Only adding CF_RETURNS_RETAINED quieted the analyzer. m.
--
matt neuburg, phd = [email protected], <http://www.apeth.net/matt/>
A fool + a tool + an autorelease pool = cool!
Programming iOS 5! http://shop.oreilly.com/product/0636920023562.do
_______________________________________________
Cocoa-dev mailing list ([email protected])
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 [email protected]