From f041411033be3182752311e416e262f14aa9b69a Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 25 Oct 2014 07:42:37 +0200 Subject: [PATCH] (OSX) Create CFBridgingRetainCompat so that it will still compile on OSX 10.6 --- apple/common/CFExtensions.m | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/apple/common/CFExtensions.m b/apple/common/CFExtensions.m index abb4438ff7..9980a91539 100644 --- a/apple/common/CFExtensions.m +++ b/apple/common/CFExtensions.m @@ -18,11 +18,30 @@ #import #include "CFExtensions.h" +#ifndef CF_RETURNS_RETAINED +#if __has_feature(attribute_cf_returns_retained) +#define CF_RETURNS_RETAINED __attribute__((cf_returns_retained)) +#else +#define CF_RETURNS_RETAINED +#endif +#endif + + +NS_INLINE CF_RETURNS_RETAINED CFTypeRef CFBridgingRetainCompat(id X) +{ +#ifdef __has_feature(objc_arc) + return (__bridge_retained CFTypeRef)x; +#else + return X; +#endif +} + + void CFSearchPathForDirectoriesInDomains(unsigned flags, unsigned domain_mask, unsigned expand_tilde, char *buf, size_t sizeof_buf) { - CFTypeRef array_val = (CFTypeRef)CFBridgingRetain(NSSearchPathForDirectoriesInDomains(flags, domain_mask, (BOOL)expand_tilde)); + CFTypeRef array_val = (CFTypeRef)CFBridgingRetainCompat(NSSearchPathForDirectoriesInDomains(flags, domain_mask, (BOOL)expand_tilde)); CFArrayRef array = array_val ? CFRetain(array_val) : NULL; CFTypeRef path_val = (CFTypeRef)CFArrayGetValueAtIndex(array, 0); CFStringRef path = path_val ? CFRetain(path_val) : NULL;