From 08627f370464bb6d9c4f44f0734853b0d2304d1b Mon Sep 17 00:00:00 2001 From: Richard Frith-MacDonald Date: Thu, 26 Nov 1998 13:21:37 +0000 Subject: [PATCH] Performance improvement git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@3333 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 6 ++++++ Source/NSObject.m | 8 ++++++++ 2 files changed, 14 insertions(+) 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