Object.h: Moved all the methods, with the exception of -class and -isEqual:, into ...

2010-12-14  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc/Object.h: Moved all the methods, with the exception of
	-class and -isEqual:, into ...
	* objc/deprecated/Object.h: here.
	* Object.m: Moved all the methods, with the exception of -class
	and -isEqual: into the 'Deprecated' category.

From-SVN: r167825
This commit is contained in:
Nicola Pero 2010-12-14 23:36:36 +00:00 committed by Nicola Pero
parent 173fb2ff62
commit 002d467548
4 changed files with 113 additions and 111 deletions

View File

@ -1,3 +1,11 @@
2010-12-14 Nicola Pero <nicola.pero@meta-innovation.com>
* objc/Object.h: Moved all the methods, with the exception of
-class and -isEqual:, into ...
* objc/deprecated/Object.h: here.
* Object.m: Moved all the methods, with the exception of -class
and -isEqual: into the 'Deprecated' category.
2010-12-14 Nicola Pero <nicola.pero@meta-innovation.com> 2010-12-14 Nicola Pero <nicola.pero@meta-innovation.com>
* objects.c (object_copy): Do not #undef as we are no longer * objects.c (object_copy): Do not #undef as we are no longer

View File

@ -31,6 +31,22 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
@implementation Object @implementation Object
- (Class)class
{
return object_get_class (self);
}
- (BOOL)isEqual: (id)anObject
{
return self == anObject;
}
@end
/* The following methods were deprecated in GCC 4.6.0 and will be
removed in the next GCC release. */
@implementation Object (Deprecated)
+ initialize + initialize
{ {
return self; return self;
@ -76,11 +92,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
return [self copy]; return [self copy];
} }
- (Class)class
{
return object_get_class(self);
}
- (Class)superClass - (Class)superClass
{ {
return object_get_super_class(self); return object_get_super_class(self);
@ -106,11 +117,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
return (size_t)self; return (size_t)self;
} }
- (BOOL)isEqual:anObject
{
return self==anObject;
}
- (int)compare:(id)anotherObject; - (int)compare:(id)anotherObject;
{ {
if ([self isEqual:anotherObject]) if ([self isEqual:anotherObject])
@ -344,13 +350,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
class_set_version(self, aVersion); class_set_version(self, aVersion);
return self; return self;
} }
@end
/* The following methods were deprecated in GCC 4.6.0 and will be
removed in the next GCC release.
*/
@implementation Object (Deprecated)
+ (int)streamVersion: (TypedStream*)aStream + (int)streamVersion: (TypedStream*)aStream
{ {

View File

@ -33,103 +33,27 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
extern "C" { extern "C" {
#endif #endif
/* The Object class is a minimal (but fully functional) root class /* The Object class is a very minimal root class included with the
included with the runtime. runtime. It is used as superclass for the two classes included
with the runtime, Protocol and NXConstantString.
It is mostly for testing the runtime; very handy in configure Because Objective-C allows multiple root classes, you can define
tests, and when writing language/runtime testcases. your own root class, different from Object.
Because Objective-C allows multiple root classes, a Foundation In particular, a Foundation library (such as GNUstep Base) is
library (such as GNUstep Base) is expected to provide its own root expected to provide its own root class (typically called NSObject),
class (typically called NSObject), fully integrated with the fully integrated with the library's own high-level features. It is
library's own high-level features. If you are using such a expected that you should always use and interact with NSObject, and
Foundation library, you should most likely use its root class for mostly ignore Object. */
everything and ignore Object.
*/
/* /* All classes are derived from Object. As such, this is the overhead
All classes are derived from Object. As such, tacked onto those objects. */
this is the overhead tacked onto those objects.
*/
@interface Object @interface Object
{ {
Class isa; /* A pointer to the instance's class structure */ Class isa; /* A pointer to the instance's class structure. */
} }
/* Initializing classes and instances */
+ initialize;
- init;
/* Creating, freeing, and copying instances */
+ new;
+ alloc;
- free;
- copy;
- shallowCopy;
- deepen;
- deepCopy;
/* Identifying classes */
- (Class)class; - (Class)class;
- (Class)superClass; - (BOOL)isEqual: (id)anObject;
- (MetaClass)metaClass;
- (const char *)name;
/* Identifying and comparing objects */
- self;
- (unsigned int)hash;
- (BOOL)isEqual:anObject;
- (int)compare:(id)anotherObject;
/* Testing object type */
- (BOOL)isMetaClass;
- (BOOL)isClass;
- (BOOL)isInstance;
/* Testing inheritance relationships */
- (BOOL)isKindOf:(Class)aClassObject;
- (BOOL)isMemberOf:(Class)aClassObject;
- (BOOL)isKindOfClassNamed:(const char *)aClassName;
- (BOOL)isMemberOfClassNamed:(const char *)aClassName;
/* Testing class functionality */
+ (BOOL)instancesRespondTo:(SEL)aSel;
- (BOOL)respondsTo:(SEL)aSel;
/* Testing protocol conformance */
- (BOOL)conformsTo:(Protocol*)aProtocol;
/* Introspection */
+ (IMP)instanceMethodFor:(SEL)aSel;
- (IMP)methodFor:(SEL)aSel;
+ (struct objc_method_description *)descriptionForInstanceMethod:(SEL)aSel;
- (struct objc_method_description *)descriptionForMethod:(SEL)aSel;
/* Sending messages determined at run time */
- perform:(SEL)aSel;
- perform:(SEL)aSel with:anObject;
- perform:(SEL)aSel with:anObject1 with:anObject2;
/* Forwarding */
- (retval_t)forward:(SEL)aSel :(arglist_t)argFrame;
- (retval_t)performv:(SEL)aSel :(arglist_t)argFrame;
/* Posing */
+ poseAs:(Class)aClassObject;
- (Class)transmuteClassTo:(Class)aClassObject;
/* Enforcing intentions */
- subclassResponsibility:(SEL)aSel;
- notImplemented:(SEL)aSel;
- shouldNotImplement:(SEL)aSel;
/* Error handling */
- doesNotRecognize:(SEL)aSel;
- error:(const char *)aString, ...;
/* Archiving */
+ (int)version;
+ setVersion:(int)aVersion;
@end @end
#include "deprecated/Object.h" #include "deprecated/Object.h"

View File

@ -1,8 +1,79 @@
@interface Object (Deprecated)
/* The following methods were deprecated in GCC 4.6.0 and will be /* The following methods were deprecated in GCC 4.6.0 and will be
removed in the next GCC release. removed in the next GCC release. */
*/ @interface Object (Deprecated)
/* Initializing classes and instances */
+ initialize;
- init;
/* Creating, freeing, and copying instances */
+ new;
+ alloc;
- free;
- copy;
- shallowCopy;
- deepen;
- deepCopy;
/* Identifying classes */
- (Class)superClass;
- (MetaClass)metaClass;
- (const char *)name;
/* Identifying and comparing objects */
- self;
- (unsigned int)hash;
- (int)compare:(id)anotherObject;
/* Testing object type */
- (BOOL)isMetaClass;
- (BOOL)isClass;
- (BOOL)isInstance;
/* Testing inheritance relationships */
- (BOOL)isKindOf:(Class)aClassObject;
- (BOOL)isMemberOf:(Class)aClassObject;
- (BOOL)isKindOfClassNamed:(const char *)aClassName;
- (BOOL)isMemberOfClassNamed:(const char *)aClassName;
/* Testing class functionality */
+ (BOOL)instancesRespondTo:(SEL)aSel;
- (BOOL)respondsTo:(SEL)aSel;
/* Testing protocol conformance */
- (BOOL)conformsTo:(Protocol*)aProtocol;
/* Introspection */
+ (IMP)instanceMethodFor:(SEL)aSel;
- (IMP)methodFor:(SEL)aSel;
+ (struct objc_method_description *)descriptionForInstanceMethod:(SEL)aSel;
- (struct objc_method_description *)descriptionForMethod:(SEL)aSel;
/* Sending messages determined at run time */
- perform:(SEL)aSel;
- perform:(SEL)aSel with:anObject;
- perform:(SEL)aSel with:anObject1 with:anObject2;
/* Forwarding */
- (retval_t)forward:(SEL)aSel :(arglist_t)argFrame;
- (retval_t)performv:(SEL)aSel :(arglist_t)argFrame;
/* Posing */
+ poseAs:(Class)aClassObject;
- (Class)transmuteClassTo:(Class)aClassObject;
/* Enforcing intentions */
- subclassResponsibility:(SEL)aSel;
- notImplemented:(SEL)aSel;
- shouldNotImplement:(SEL)aSel;
/* Error handling */
- doesNotRecognize:(SEL)aSel;
- error:(const char *)aString, ...;
/* Archiving */
+ (int)version;
+ setVersion:(int)aVersion;
+ (int)streamVersion: (TypedStream*)aStream; /* __attribute__ ((deprecated)) */ + (int)streamVersion: (TypedStream*)aStream; /* __attribute__ ((deprecated)) */
- read: (TypedStream*)aStream; /* __attribute__ ((deprecated)) */ - read: (TypedStream*)aStream; /* __attribute__ ((deprecated)) */