diff --git a/ChangeLog b/ChangeLog index 6c8d0ecac..5992f6e5a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2002-05-06 Adam Fedor + + * Source/NSMethodSignature.m (-isEqual:): Implemented (from + znek@mulle-kybernetik.com). + 2002-05-06 Richard Frith-Macdonald * Source/NSMapTable.m: Delete line teft over by accident ... could diff --git a/Source/NSMethodSignature.m b/Source/NSMethodSignature.m index 9bb76e17b..8afbc1e1c 100644 --- a/Source/NSMethodSignature.m +++ b/Source/NSMethodSignature.m @@ -126,6 +126,41 @@ [super dealloc]; } +- (BOOL)isEqual:(id)other +{ + BOOL isEqual = YES; + if (other == nil) + { + return NO; + } + if (((NSMethodSignature *)other)->isa != isa) + { + return NO; + } + isEqual = ([self numberOfArguments] == [other numberOfArguments] + && [self frameLength] == [other frameLength] + && *[self methodReturnType] == *[other methodReturnType] + && [self isOneway] == [other isOneway]); + if(isEqual == NO) + { + return NO; + } + else + { + int i, n; + n = [self numberOfArguments]; + for(i = 0; i < n; i++) + { + if ( (*[self getArgumentTypeAtIndex:i] + == *[other getArgumentTypeAtIndex:i]) == NO) + { + return NO; + } + } + } + return isEqual; +} + @end @implementation NSMethodSignature(GNU)