From 1813cf70a31cbf7f93ab270f67566142dbecdb7a Mon Sep 17 00:00:00 2001 From: Nicholas Hutchinson Date: Wed, 29 May 2013 11:04:08 +0100 Subject: [PATCH] Add support for ARC when writing custom matchers --- src/ExpectaSupport.h | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/ExpectaSupport.h b/src/ExpectaSupport.h index a0e9eb2..58c9f98 100644 --- a/src/ExpectaSupport.h +++ b/src/ExpectaSupport.h @@ -12,6 +12,15 @@ void EXP_match(EXPBoolBlock block); void EXP_failureMessageForTo(EXPStringBlock block); void EXP_failureMessageForNotTo(EXPStringBlock block); +#if __has_feature(objc_arc) +#define _EXP_release(x) +#define _EXP_autorelease(x) (x) + +#else +#define _EXP_release(x) [x release] +#define _EXP_autorelease(x) [x autorelease] +#endif + // workaround for the categories bug: http://developer.apple.com/library/mac/#qa/qa1490/_index.html #define EXPFixCategoriesBug(name) \ @interface EXPFixCategoriesBug##name; @end \ @@ -42,7 +51,7 @@ EXPFixCategoriesBug(EXPMatcher##matcherName##Matcher); \ } \ [self applyMatcher:matcher to:&actual]; \ }; \ - [matcher release]; \ - return [[matcherBlock copy] autorelease]; \ + _EXP_release(matcher); \ + return _EXP_autorelease([matcherBlock copy]); \ } \ @end