@@ -293,19 +293,26 @@ abort(); \ } \ } while (0) #define OF_UNRECOGNIZED_SELECTOR of_method_not_found(self, _cmd); -#define OF_INVALID_INIT_METHOD \ +#if __has_feature(objc_arc) +# define OF_INVALID_INIT_METHOD \ + [self doesNotRecognizeSelector: _cmd]; \ + \ + abort(); +#else +# define OF_INVALID_INIT_METHOD \ @try { \ [self doesNotRecognizeSelector: _cmd]; \ } @catch (id e) { \ [self release]; \ @throw e; \ } \ \ abort(); +#endif #ifdef __cplusplus extern "C" { #endif extern id objc_getProperty(id, SEL, ptrdiff_t, BOOL);