From 60595000ea5ea111993982bfcd3db26292a817f3 Mon Sep 17 00:00:00 2001 From: CaS Date: Wed, 23 Jul 2003 21:42:03 +0000 Subject: [PATCH] zombie fix git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@17317 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 4 ++++ Source/NSObject.m | 16 ++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/ChangeLog b/ChangeLog index b76e5b5d9..3a54c8491 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2003-07-23 Richard Frith-Macdonald + + * Source/NSObject.m: Implement methodSignatureForSelector for zombies + 2003-07-22 Adam Fedor * Version 1.7.2 diff --git a/Source/NSObject.m b/Source/NSObject.m index 2f0d59fb4..db83a08ec 100644 --- a/Source/NSObject.m +++ b/Source/NSObject.m @@ -2279,6 +2279,7 @@ struct objc_method_description_list { @interface NSZombie - (retval_t) forward:(SEL)aSel :(arglist_t)argFrame; - (void) forwardInvocation: (NSInvocation*)anInvocation; +- (NSMethodSignature*) methodSignatureForSelector: (SEL)aSelector; @end @implementation NSZombie @@ -2301,5 +2302,20 @@ struct objc_method_description_list { [anInvocation setReturnValue: (void*)v]; return; } +- (NSMethodSignature*) methodSignatureForSelector: (SEL)aSelector +{ + Class c; + + if (allocationLock != 0) + { + objc_mutex_lock(allocationLock); + } + c = NSMapGet(zombieMap, (void*)self); + if (allocationLock != 0) + { + objc_mutex_unlock(allocationLock); + } + return [c instanceMethodSignatureForSelector: aSelector]; +} @end