Skip to content

Instantly share code, notes, and snippets.

@fjolnir
Last active December 22, 2015 23:29
Show Gist options
  • Save fjolnir/6546986 to your computer and use it in GitHub Desktop.
Save fjolnir/6546986 to your computer and use it in GitHub Desktop.
#define CF_AUTORELEASED __attribute__ ((cleanup(CFReleaseCleanup)))
static inline void CFReleaseCleanup(CF_CONSUMED void *objPtr) {
CFRelease(*(CFTypeRef *)objPtr);
}
- (CGSize)sizeThatFits
{
CF_AUTORELEASED CTFramesetterRef framesetter = [self _createFramesetter];
return [self sizeThatFitsFrameSetter:framesetter];
}
// as opposed to
- (CGSize)sizeThatFits
{
CTFramesetterRef framesetter = [self _createFramesetter];
CGSize const size = [self sizeThatFitsFrameSetter:framesetter];
CFRelease(framesetter);
return size
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment