@@ -361,19 +361,27 @@ #endif #define OF_RETAIN_COUNT_MAX UINT_MAX #define OF_NOT_FOUND SIZE_MAX -#define OF_ENSURE(cond) \ +#ifdef OBJC_COMPILING_RUNTIME +# define OF_ENSURE(cond) \ + do { \ + if OF_UNLIKELY (!(cond)) \ + OBJC_ERROR("Failed to ensure condition:\n" #cond); \ + } while(0) +#else +# define OF_ENSURE(cond) \ do { \ - if (!(cond)) { \ + if OF_UNLIKELY (!(cond)) { \ fprintf(stderr, "Failed to ensure condition " \ "in " __FILE__ ":%d:\n" #cond "\n", \ __LINE__); \ abort(); \ } \ } while (0) +#endif #define OF_UNRECOGNIZED_SELECTOR of_method_not_found(self, _cmd); #if __has_feature(objc_arc) # define OF_INVALID_INIT_METHOD of_method_not_found(self, _cmd); #else