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:
fedor 1998-09-28 20:38:02 +00:00
parent 5413324b26
commit fca11c379c
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> Fri Sep 18 10:20:55 1998 Adam Fedor <fedor@ultra.doc.com>
* src/include/preface.h.in (MIN, MAX): Rewrite macros (suggestion * src/include/preface.h.in (MIN, MAX): Rewrite macros (suggestion

View file

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

View file

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

View file

@ -42,28 +42,9 @@
+ (void) load; + (void) load;
+ (BOOL) respondsToSelector: (SEL)aSelector; + (BOOL) respondsToSelector: (SEL)aSelector;
- autorelease;
- (Class) class;
- (BOOL) conformsToProtocol: (Protocol*)aProtocol;
- (void) dealloc; - (void) dealloc;
- (NSString*) description;
- (void) forwardInvocation: (NSInvocation*)anInvocation; - (void) forwardInvocation: (NSInvocation*)anInvocation;
- (unsigned int) hash;
- (BOOL) isEqual: anObject;
- (BOOL) isKindOfClass: (Class)aClass;
- (BOOL) isMemberOfClass: (Class)aClass;
- (BOOL) isProxy;
- methodSignatureForSelector: (SEL)aSelector; - 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 @end

View file

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

View file

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

View file

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

View file

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

View file

@ -510,6 +510,11 @@ static BOOL double_release_check_enabled = NO;
return self; return self;
} }
+ (Class) class
{
return self;
}
- (Class) class - (Class) class
{ {
return object_get_class(self); return object_get_class(self);
@ -568,7 +573,7 @@ static BOOL double_release_check_enabled = NO;
return NO; return NO;
} }
- perform: (SEL)aSelector - performSelector: (SEL)aSelector
{ {
IMP msg = objc_msg_lookup(self, aSelector); IMP msg = objc_msg_lookup(self, aSelector);
if (!msg) if (!msg)
@ -581,7 +586,7 @@ static BOOL double_release_check_enabled = NO;
return (*msg)(self, aSelector); return (*msg)(self, aSelector);
} }
- perform: (SEL)aSelector withObject: anObject - performSelector: (SEL)aSelector withObject: anObject
{ {
IMP msg = objc_msg_lookup(self, aSelector); IMP msg = objc_msg_lookup(self, aSelector);
if (!msg) if (!msg)
@ -594,7 +599,7 @@ static BOOL double_release_check_enabled = NO;
return (*msg)(self, aSelector, anObject); 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); IMP msg = objc_msg_lookup(self, aSelector);
if (!msg) if (!msg)
@ -685,6 +690,17 @@ static BOOL double_release_check_enabled = NO;
return self; return self;
} }
+ (int)version
{
return class_get_version(self);
}
+ setVersion:(int)aVersion
{
class_set_version(self, aVersion);
return self;
}
@end @end
@ -774,17 +790,6 @@ static BOOL double_release_check_enabled = NO;
return self; return self;
} }
+ (int)version
{
return class_get_version(self);
}
+ setVersion:(int)aVersion
{
class_set_version(self, aVersion);
return self;
}
- notImplemented:(SEL)aSel - notImplemented:(SEL)aSel
{ {
[NSException [NSException
@ -803,12 +808,24 @@ static BOOL double_release_check_enabled = NO;
- perform: (SEL)sel with: anObject - perform: (SEL)sel with: anObject
{ {
return [self perform:sel withObject:anObject]; return [self performSelector:sel withObject:anObject];
} }
- perform: (SEL)sel with: anObject with: anotherObject - 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 @end
@ -944,50 +961,3 @@ static BOOL double_release_check_enabled = NO;
} }
@end @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; return nil;
} }
- perform: (SEL)aSelector - performSelector: (SEL)aSelector
{ {
IMP msg = objc_msg_lookup(self, aSelector); IMP msg = objc_msg_lookup(self, aSelector);
@ -189,7 +189,7 @@
return (*msg)(self, aSelector); return (*msg)(self, aSelector);
} }
- perform: (SEL)aSelector withObject: anObject - performSelector: (SEL)aSelector withObject: anObject
{ {
IMP msg = objc_msg_lookup(self, aSelector); IMP msg = objc_msg_lookup(self, aSelector);
@ -202,7 +202,7 @@
return (*msg)(self, aSelector, anObject); 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); IMP msg = objc_msg_lookup(self, aSelector);

View file

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

View file

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

View file

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

View file

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