aboutsummaryrefslogtreecommitdiff
path: root/libobjc
diff options
context:
space:
mode:
authorNicola Pero <nicola.pero@meta-innovation.com>2010-12-14 23:36:36 +0000
committerNicola Pero <nicola@gcc.gnu.org>2010-12-14 23:36:36 +0000
commit002d4675481348987b4f7191e61e12e4e7ac9b4e (patch)
tree51cf821b43e4c3619d5c7f664fc6aeb9b0caff64 /libobjc
parent173fb2ff62e71fe86e311cd7135da4383060ff64 (diff)
downloadgcc-002d4675481348987b4f7191e61e12e4e7ac9b4e.zip
gcc-002d4675481348987b4f7191e61e12e4e7ac9b4e.tar.gz
gcc-002d4675481348987b4f7191e61e12e4e7ac9b4e.tar.bz2
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
Diffstat (limited to 'libobjc')
-rw-r--r--libobjc/ChangeLog8
-rw-r--r--libobjc/Object.m33
-rw-r--r--libobjc/objc/Object.h110
-rw-r--r--libobjc/objc/deprecated/Object.h77
4 files changed, 115 insertions, 113 deletions
diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog
index bbf4696..94caca3 100644
--- a/libobjc/ChangeLog
+++ b/libobjc/ChangeLog
@@ -1,5 +1,13 @@
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
including objc/objc-api.h.
* selector.c: Include objc/runtime.h and
diff --git a/libobjc/Object.m b/libobjc/Object.m
index 441c471..0b7c49f 100644
--- a/libobjc/Object.m
+++ b/libobjc/Object.m
@@ -31,6 +31,22 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
@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
{
return self;
@@ -76,11 +92,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
return [self copy];
}
-- (Class)class
-{
- return object_get_class(self);
-}
-
- (Class)superClass
{
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;
}
-- (BOOL)isEqual:anObject
-{
- return self==anObject;
-}
-
- (int)compare:(id)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);
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
{
diff --git a/libobjc/objc/Object.h b/libobjc/objc/Object.h
index e5c32f1..379e906 100644
--- a/libobjc/objc/Object.h
+++ b/libobjc/objc/Object.h
@@ -33,103 +33,27 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
extern "C" {
#endif
-/* The Object class is a minimal (but fully functional) root class
- included with the runtime.
-
- 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 */
-}
+/* The Object class is a very minimal root class included with the
+ runtime. It is used as superclass for the two classes included
+ with the runtime, Protocol and NXConstantString.
- /* Initializing classes and instances */
-+ initialize;
-- init;
+ Because Objective-C allows multiple root classes, you can define
+ your own root class, different from Object.
- /* Creating, freeing, and copying instances */
-+ new;
-+ alloc;
-- free;
-- copy;
-- shallowCopy;
-- deepen;
-- deepCopy;
+ In particular, 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. It is
+ expected that you should always use and interact with NSObject, and
+ mostly ignore Object. */
- /* 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)superClass;
-- (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;
+- (BOOL)isEqual: (id)anObject;
@end
#include "deprecated/Object.h"
diff --git a/libobjc/objc/deprecated/Object.h b/libobjc/objc/deprecated/Object.h
index 0241f0f..e15cf7d 100644
--- a/libobjc/objc/deprecated/Object.h
+++ b/libobjc/objc/deprecated/Object.h
@@ -1,8 +1,79 @@
+/* The following methods were deprecated in GCC 4.6.0 and will be
+ 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;
-/* 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)) */
- read: (TypedStream*)aStream; /* __attribute__ ((deprecated)) */