Make NSObject conform to specs

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@2987 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Adam Fedor 1998-09-28 20:38:02 +00:00
parent a7933f2496
commit 5380811bdc
14 changed files with 97 additions and 120 deletions

View file

@ -1,3 +1,27 @@
Mon Sep 28 17:02:33 1998 Adam Fedor <fedor@ultra.doc.com>
* src/include/NSObject.h (-perform:, -perform:withObject:,
-perform:withObject:withObject:): Remove definitions (use
performSelector:... instead.
(+class, +superclass, +setVersion:, +version): Add.
Rearrange some other method definitions.
* src/include/NSProxy.h: Likewise.
* src/NSObject.m (+class): Add.
(-perform:, -perform:withObject:,
-perform:withObject:withObject:): Depreciate these methods.
* src/Proxy.m: Likewise.
* src/Collection.m: Use performSelector instead of perform.
* src/IndexedCollection.m: Likewise.
* src/NSArray.m: Likewise.
* src/NSRunLoop.m: Likewise.
* src/NSSet.m: Likewise.
* src/NSTimer.m: Likewise.
* src/NotificationDispatcher.m: Likewise.
* src/NSException (-initWithCoder:): Fix object decoding.
Fri Sep 18 10:20:55 1998 Adam Fedor <fedor@ultra.doc.com>
* src/include/preface.h.in (MIN, MAX): Rewrite macros (suggestion

View file

@ -19,4 +19,9 @@ gnustep-base_5.html
gnustep-base_6.html
CODING-STANDARDS
STATUS
TODO
INSTALL
NEWS
README
ANNOUNCE

View file

@ -40,22 +40,23 @@
@class Protocol;
@protocol NSObject
- autorelease;
- (Class) class;
- (BOOL) conformsToProtocol: (Protocol *)aProtocol;
- (unsigned) hash;
- (Class) superclass;
- (BOOL) isEqual: anObject;
- (BOOL) isKindOfClass: (Class)aClass;
- (BOOL) isMemberOfClass: (Class)aClass;
- (BOOL) isProxy;
- perform: (SEL)aSelector;
- perform: (SEL)aSelector withObject: anObject;
- perform: (SEL)aSelector withObject: object1 withObject: object2;
- (oneway void) release;
- (BOOL) respondsToSelector: (SEL)aSelector;
- retain;
- (unsigned) retainCount;
- (unsigned) hash;
- self;
- performSelector: (SEL)aSelector;
- performSelector: (SEL)aSelector withObject: anObject;
- performSelector: (SEL)aSelector withObject: object1 withObject: object2;
- (BOOL) respondsToSelector: (SEL)aSelector;
- (BOOL) conformsToProtocol: (Protocol *)aProtocol;
- retain;
- autorelease;
- (oneway void) release;
- (unsigned) retainCount;
- (NSZone *) zone;
- (NSString *) description;
@end
@ -88,8 +89,8 @@
- (id) init;
- (id) mutableCopy;
- (Class) class;
- (Class) superclass;
+ (Class) class;
+ (Class) superclass;
+ (BOOL) instancesRespondToSelector: (SEL)aSelector;
@ -111,6 +112,9 @@
- (Class) classForCoder;
- (id) replacementObjectForCoder: (NSCoder*)anEncoder;
+ setVersion: (int)aVersion;
+ (int) version;
@end
@interface NSObject (NSPortCoder)
@ -158,13 +162,6 @@ enum {NSNotFound = 0x7fffffff};
- write: (TypedStream*)aStream;
@end
@interface NSObject (OPENSTEP)
- performSelector: (SEL)aSelector;
- performSelector: (SEL)aSelector withObject: anObject;
- performSelector: (SEL)aSelector withObject: object1 withObject: object2;
@end
#include <Foundation/NSDate.h>
@interface NSObject (TimedPerformers)
+ (void) cancelPreviousPerformRequestsWithTarget: (id)obj

View file

@ -42,28 +42,9 @@
+ (void) load;
+ (BOOL) respondsToSelector: (SEL)aSelector;
- autorelease;
- (Class) class;
- (BOOL) conformsToProtocol: (Protocol*)aProtocol;
- (void) dealloc;
- (NSString*) description;
- (void) forwardInvocation: (NSInvocation*)anInvocation;
- (unsigned int) hash;
- (BOOL) isEqual: anObject;
- (BOOL) isKindOfClass: (Class)aClass;
- (BOOL) isMemberOfClass: (Class)aClass;
- (BOOL) isProxy;
- methodSignatureForSelector: (SEL)aSelector;
- perform: (SEL)aSelector;
- perform: (SEL)aSelector withObject: anObject;
- perform: (SEL)aSelector withObject: anObject withObject: anotherObject;
- (void) release;
- (BOOL) respondsToSelector: (SEL)aSelector;
- retain;
- (unsigned int) retainCount;
- self;
- superclass;
- (NSZone*)zone;
@end

View file

@ -410,7 +410,7 @@
FOR_COLLECTION(self, o)
{
[o perform: aSel];
[o performSelector: aSel];
}
END_FOR_COLLECTION(self);
}
@ -421,7 +421,7 @@
FOR_COLLECTION(self, o)
{
[o perform: aSel withObject: argObject];
[o performSelector: aSel withObject: argObject];
}
END_FOR_COLLECTION(self);
}

View file

@ -249,7 +249,7 @@
id o;
FOR_INDEXED_COLLECTION_REVERSE(self, o)
{
[o perform: aSel];
[o performSelector: aSel];
}
END_FOR_INDEXED_COLLECTION_REVERSE(self);
}
@ -259,7 +259,7 @@
id o;
FOR_INDEXED_COLLECTION_REVERSE(self, o)
{
[o perform: aSel withObject: argObject];
[o performSelector: aSel withObject: argObject];
}
END_FOR_INDEXED_COLLECTION_REVERSE(self);
}

View file

@ -421,7 +421,7 @@ static Class NSMutableArray_concrete_class;
{
unsigned i = [self count];
while (i-- > 0)
[[self objectAtIndex:i] perform:aSelector];
[[self objectAtIndex:i] performSelector:aSelector];
}
- (void) makeObjectsPerformSelector: (SEL)aSelector
@ -433,7 +433,7 @@ static Class NSMutableArray_concrete_class;
{
unsigned i = [self count];
while (i-- > 0)
[[self objectAtIndex:i] perform:aSelector withObject:argument];
[[self objectAtIndex:i] performSelector:aSelector withObject:argument];
}
- (void) makeObjectsPerformSelector: (SEL)aSelector withObject:argument
@ -446,7 +446,7 @@ static Class NSMutableArray_concrete_class;
{
int compare(id elem1, id elem2, void* context)
{
return (int)[elem1 perform:comparator withObject:elem2];
return (int)[elem1 performSelector:comparator withObject:elem2];
}
return [self sortedArrayUsingFunction:compare context:NULL];
@ -921,7 +921,7 @@ static Class NSMutableArray_concrete_class;
{
int compare(id elem1, id elem2, void* context)
{
return (int)[elem1 perform:comparator withObject:elem2];
return (int)[elem1 performSelector:comparator withObject:elem2];
}
[self sortUsingFunction:compare context:NULL];

View file

@ -147,9 +147,9 @@ _NSFoundationUncaughtExceptionHandler(NSException *exception)
- (id)initWithCoder: aDecoder
{
self = [super initWithCoder:aDecoder];
[aDecoder decodeObjectAt: &e_name];
[aDecoder decodeObjectAt: &e_reason];
[aDecoder decodeObjectAt: &e_info];
e_name = [[aDecoder decodeObject] retain];
e_reason = [[aDecoder decodeObject] retain];
e_info = [[aDecoder decodeObject] retain];
return self;
}

View file

@ -510,6 +510,11 @@ static BOOL double_release_check_enabled = NO;
return self;
}
+ (Class) class
{
return self;
}
- (Class) class
{
return object_get_class(self);
@ -568,7 +573,7 @@ static BOOL double_release_check_enabled = NO;
return NO;
}
- perform: (SEL)aSelector
- performSelector: (SEL)aSelector
{
IMP msg = objc_msg_lookup(self, aSelector);
if (!msg)
@ -581,7 +586,7 @@ static BOOL double_release_check_enabled = NO;
return (*msg)(self, aSelector);
}
- perform: (SEL)aSelector withObject: anObject
- performSelector: (SEL)aSelector withObject: anObject
{
IMP msg = objc_msg_lookup(self, aSelector);
if (!msg)
@ -594,7 +599,7 @@ static BOOL double_release_check_enabled = NO;
return (*msg)(self, aSelector, anObject);
}
- perform: (SEL)aSelector withObject: object1 withObject: object2
- performSelector: (SEL)aSelector withObject: object1 withObject: object2
{
IMP msg = objc_msg_lookup(self, aSelector);
if (!msg)
@ -685,6 +690,17 @@ static BOOL double_release_check_enabled = NO;
return self;
}
+ (int)version
{
return class_get_version(self);
}
+ setVersion:(int)aVersion
{
class_set_version(self, aVersion);
return self;
}
@end
@ -774,17 +790,6 @@ static BOOL double_release_check_enabled = NO;
return self;
}
+ (int)version
{
return class_get_version(self);
}
+ setVersion:(int)aVersion
{
class_set_version(self, aVersion);
return self;
}
- notImplemented:(SEL)aSel
{
[NSException
@ -803,12 +808,24 @@ static BOOL double_release_check_enabled = NO;
- perform: (SEL)sel with: anObject
{
return [self perform:sel withObject:anObject];
return [self performSelector:sel withObject:anObject];
}
- perform: (SEL)sel with: anObject with: anotherObject
{
return [self perform:sel withObject:anObject withObject:anotherObject];
return [self performSelector:sel withObject:anObject
withObject:anotherObject];
}
- perform: (SEL)sel withObject: anObject
{
return [self performSelector:sel withObject:anObject];
}
- perform: (SEL)sel withObject: anObject withObject: anotherObject
{
return [self performSelector:sel withObject:anObject
withObject:anotherObject];
}
@end
@ -944,50 +961,3 @@ static BOOL double_release_check_enabled = NO;
}
@end
@implementation NSObject (OPENSTEP)
/* OPENSTEP Object class extensions
as distinquished from the OpenStep specification. */
- performSelector: (SEL)aSelector
{
IMP msg = objc_msg_lookup(self, aSelector);
if (!msg)
{
[NSException
raise: NSGenericException
format: @"invalid selector passed to %s", sel_get_name(_cmd)];
return nil;
}
return (*msg)(self, aSelector);
}
- performSelector: (SEL)aSelector withObject: anObject
{
IMP msg = objc_msg_lookup(self, aSelector);
if (!msg)
{
[NSException
raise: NSGenericException
format: @"invalid selector passed to %s", sel_get_name(_cmd)];
return nil;
}
return (*msg)(self, aSelector, anObject);
}
- performSelector: (SEL)aSelector withObject: object1 withObject: object2
{
IMP msg = objc_msg_lookup(self, aSelector);
if (!msg)
{
[NSException
raise: NSGenericException
format: @"invalid selector passed to %s", sel_get_name(_cmd)];
return nil;
}
return (*msg)(self, aSelector, object1, object2);
}
@end

View file

@ -176,7 +176,7 @@
return nil;
}
- perform: (SEL)aSelector
- performSelector: (SEL)aSelector
{
IMP msg = objc_msg_lookup(self, aSelector);
@ -189,7 +189,7 @@
return (*msg)(self, aSelector);
}
- perform: (SEL)aSelector withObject: anObject
- performSelector: (SEL)aSelector withObject: anObject
{
IMP msg = objc_msg_lookup(self, aSelector);
@ -202,7 +202,7 @@
return (*msg)(self, aSelector, anObject);
}
- perform: (SEL)aSelector withObject: anObject withObject: anotherObject
- performSelector: (SEL)aSelector withObject: anObject withObject: anotherObject
{
IMP msg = objc_msg_lookup(self, aSelector);

View file

@ -332,7 +332,7 @@ static int debug_run_loop = 0;
[[[NSRunLoop currentInstance] _timedPerformers]
removeObjectIdenticalTo: self];
}
[target perform: selector withObject: argument];
[target performSelector: selector withObject: argument];
}
- initWithSelector: (SEL)aSelector

View file

@ -237,14 +237,14 @@ static Class NSMutableSet_concrete_class;
{
id o, e = [self objectEnumerator];
while ((o = [e nextObject]))
[o perform:aSelector];
[o performSelector:aSelector];
}
- (void) makeObjectsPerform: (SEL)aSelector withObject:argument
{
id o, e = [self objectEnumerator];
while ((o = [e nextObject]))
[o perform:aSelector withObject: argument];
[o performSelector:aSelector withObject: argument];
}
- (BOOL) intersectsSet: (NSSet*) otherSet

View file

@ -111,7 +111,7 @@
- (void) fire
{
if (_selector)
[_target perform: _selector withObject: self];
[_target performSelector: _selector withObject: self];
else
[_target invoke];

View file

@ -183,7 +183,7 @@
- (void) postNotification: n
{
[_target perform: _selector withObject: n];
[_target performSelector: _selector withObject: n];
}
@end