Index: src/OFObject.m ================================================================== --- src/OFObject.m +++ src/OFObject.m @@ -545,19 +545,25 @@ - (id)performSelector: (SEL)selector { id (*imp)(id, SEL) = (id(*)(id, SEL))[self methodForSelector: selector]; + if OF_UNLIKELY (imp == NULL) + [self doesNotRecognizeSelector: selector]; + return imp(self, selector); } - (id)performSelector: (SEL)selector withObject: (id)object { id (*imp)(id, SEL, id) = (id(*)(id, SEL, id))[self methodForSelector: selector]; + if OF_UNLIKELY (imp == NULL) + [self doesNotRecognizeSelector: selector]; + return imp(self, selector, object); } - (id)performSelector: (SEL)selector withObject: (id)object1 @@ -564,10 +570,13 @@ withObject: (id)object2 { id (*imp)(id, SEL, id, id) = (id(*)(id, SEL, id, id))[self methodForSelector: selector]; + if OF_UNLIKELY (imp == NULL) + [self doesNotRecognizeSelector: selector]; + return imp(self, selector, object1, object2); } - (void)performSelector: (SEL)selector afterDelay: (double)delay