diff --git a/ChangeLog b/ChangeLog index f2a4f40e7..1808501b8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Thu Nov 26 13:35:00 1998 Richard Frith-Macdonald + + * src/NSObject.m: ([+instanceRespondToSelector:]) and + ([-respondsToSelector:]) changed to use __objc_responds_to() for an + order of magnitude performance boost. + Thu Nov 26 11:00:00 1998 Richard Frith-Macdonald * src/NSRunLoop.m: Bugfix in ([-addEvent:type:watcher:forMode:]) to get diff --git a/Source/NSObject.m b/Source/NSObject.m index c91e53bc3..b9a89578e 100644 --- a/Source/NSObject.m +++ b/Source/NSObject.m @@ -443,7 +443,11 @@ static BOOL double_release_check_enabled = NO; + (BOOL) instancesRespondToSelector: (SEL)aSelector { +#if 0 return (class_get_instance_method(self, aSelector) != METHOD_NULL); +#else + return __objc_responds_to(self, aSelector); +#endif } + (BOOL) conformsToProtocol: (Protocol*)aProtocol @@ -774,10 +778,14 @@ static BOOL double_release_check_enabled = NO; - (BOOL) respondsToSelector: (SEL)aSelector { +#if 0 if (fastIsInstance(self)) return (class_get_instance_method(fastClass(self), aSelector)!=METHOD_NULL); else return (class_get_class_method(fastClass(self), aSelector)!=METHOD_NULL); +#else + return __objc_responds_to(fastClass(self), aSelector); +#endif } - retain