diff --git a/objc/blocks_runtime.h b/objc/blocks_runtime.h index 9f1545f..c20564e 100644 --- a/objc/blocks_runtime.h +++ b/objc/blocks_runtime.h @@ -2,35 +2,28 @@ #pragma clang system_header #endif + /* * Blocks Runtime */ #include "Availability.h" #ifdef __cplusplus -#include +#define OBJC_BOOL_TYPE bool +#define OBJC_BLOCK_PTR_TYPE void* #define BLOCKS_EXPORT extern "C" #else +#define OBJC_BOOL_TYPE _Bool +#define OBJC_BLOCK_PTR_TYPE id #define BLOCKS_EXPORT extern #endif OBJC_PUBLIC BLOCKS_EXPORT void *_Block_copy(const void *); OBJC_PUBLIC BLOCKS_EXPORT void _Block_release(const void *); OBJC_PUBLIC BLOCKS_EXPORT const char *block_getType_np(const void *b) OBJC_NONPORTABLE; -#ifdef __OBJC__ -#ifdef __cplusplus -OBJC_PUBLIC BLOCKS_EXPORT bool _Block_has_signature(id); -#else -OBJC_PUBLIC BLOCKS_EXPORT _Bool _Block_has_signature(id); -#endif -OBJC_PUBLIC BLOCKS_EXPORT const char * _Block_signature(id); -#else -#ifdef __cplusplus -OBJC_PUBLIC BLOCKS_EXPORT bool _Block_has_signature(void *); -#else -OBJC_PUBLIC BLOCKS_EXPORT _Bool _Block_has_signature(void *); -#endif -OBJC_PUBLIC BLOCKS_EXPORT const char * _Block_signature(void *); -#endif + +OBJC_PUBLIC BLOCKS_EXPORT OBJC_BOOL_TYPE _Block_has_signature(OBJC_BLOCK_PTR_TYPE); +OBJC_PUBLIC BLOCKS_EXPORT const char * _Block_signature(OBJC_BLOCK_PTR_TYPE); + #define Block_copy(x) ((__typeof(x))_Block_copy((const void *)(x))) #define Block_release(x) _Block_release((const void *)(x))