diff options
Diffstat (limited to 'platform/darwin/src')
-rw-r--r-- | platform/darwin/src/MGLFoundation.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/platform/darwin/src/MGLFoundation.h b/platform/darwin/src/MGLFoundation.h index 3400c63979..be86bb92f9 100644 --- a/platform/darwin/src/MGLFoundation.h +++ b/platform/darwin/src/MGLFoundation.h @@ -3,3 +3,10 @@ #import <Foundation/Foundation.h> #define MGL_EXPORT __attribute__((visibility ("default"))) + +/* Using a compound statement (GNU Extension, supported by clang) */ +#define MGL_OBJC_DYNAMIC_CAST(object, type) \ + ({ \ + __typeof__( object ) temp##__LINE__ = (object); \ + (type *)([temp##__LINE__ isKindOfClass:[type class]] ? temp##__LINE__ : nil); \ + }) |