Commit 002d4675 by Nicola Pero Committed by Nicola Pero

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
parent 173fb2ff
2010-12-14 Nicola Pero <nicola.pero@meta-innovation.com> 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>
* objects.c (object_copy): Do not #undef as we are no longer * objects.c (object_copy): Do not #undef as we are no longer
including objc/objc-api.h. including objc/objc-api.h.
* selector.c: Include objc/runtime.h and * selector.c: Include objc/runtime.h and
......
...@@ -31,6 +31,22 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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
{ {
......
...@@ -33,103 +33,27 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ...@@ -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
tests, and when writing language/runtime testcases.
Because Objective-C allows multiple root classes, a Foundation
library (such as GNUstep Base) is expected to provide its own root
class (typically called NSObject), fully integrated with the
library's own high-level features. If you are using such a
Foundation library, you should most likely use its root class for
everything and ignore Object.
*/
/*
All classes are derived from Object. As such,
this is the overhead tacked onto those objects.
*/
@interface Object
{
Class isa; /* A pointer to the instance's class structure */
}
/* Initializing classes and instances */ Because Objective-C allows multiple root classes, you can define
+ initialize; your own root class, different from Object.
- - init;
/* Creating, freeing, and copying instances */ In particular, a Foundation library (such as GNUstep Base) is
+ + new; expected to provide its own root class (typically called NSObject),
+ + alloc; fully integrated with the library's own high-level features. It is
- - free; expected that you should always use and interact with NSObject, and
- - copy; mostly ignore Object. */
- - shallowCopy;
- - deepen;
- - deepCopy;
/* Identifying classes */ /* All classes are derived from Object. As such, this is the overhead
tacked onto those objects. */
@interface Object
{
Class isa; /* A pointer to the instance's class structure. */
}
- (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"
......
/* The following methods were deprecated in GCC 4.6.0 and will be
removed in the next GCC release. */
@interface Object (Deprecated) @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;
/* The following methods were deprecated in GCC 4.6.0 and will be
removed in the next GCC release.
*/
+ (int)streamVersion: (TypedStream*)aStream; /* __attribute__ ((deprecated)) */ + (int)streamVersion: (TypedStream*)aStream; /* __attribute__ ((deprecated)) */
- - read: (TypedStream*)aStream; /* __attribute__ ((deprecated)) */ - - read: (TypedStream*)aStream; /* __attribute__ ((deprecated)) */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment