]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - libobjc/Object.m
In libobjc/: 2010-12-19 Nicola Pero <nicola.pero@meta-innovation.com>
[thirdparty/gcc.git] / libobjc / Object.m
index 1830acf4502a05d87edff1b16b743debfa9fcf81..0b7c49fdab292703714869e190b49f3c1ba09041 100644 (file)
@@ -1,11 +1,11 @@
 /* The implementation of class Object for Objective-C.
-   Copyright (C) 1993, 1994, 1995, 1997, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1993, 1994, 1995, 1997, 2002, 2009 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
 GCC is free software; you can redistribute it and/or modify it
 under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 2, or (at your option) any
+Free Software Foundation; either version 3, or (at your option) any
 later version.
 
 GCC is distributed in the hope that it will be useful, but WITHOUT
@@ -13,27 +13,39 @@ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
 License for more details.
 
-You should have received a copy of the GNU General Public License
-along with GCC; see the file COPYING.  If not, write to
-the Free Software Foundation, 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA.  */
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
 
-/* As a special exception, if you link this library with files compiled
-   with GCC to produce an executable, this does not cause the resulting
-   executable to be covered by the GNU General Public License.  This
-   exception does not however invalidate any other reasons why the
-   executable file might be covered by the GNU General Public License. */
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+<http://www.gnu.org/licenses/>.  */
 
+#include "objc-private/common.h"
 #include <stdarg.h>
+#include <errno.h>
 #include "objc/Object.h"
 #include "objc/Protocol.h"
 #include "objc/objc-api.h"
 
-extern int errno;
+@implementation Object
 
-#define MAX_CLASS_NAME_LEN 256
+- (Class)class
+{
+  return object_get_class (self);
+}
 
-@implementation Object
+- (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
 {
@@ -80,11 +92,6 @@ extern int errno;
   return [self copy];
 }
 
-- (Class)class
-{
-  return object_get_class(self);
-}
-
 - (Class)superClass
 {
   return object_get_super_class(self);
@@ -110,18 +117,13 @@ extern int errno;
   return (size_t)self;
 }
 
-- (BOOL)isEqual:anObject
-{
-  return self==anObject;
-}
-
 - (int)compare:(id)anotherObject;
 {
   if ([self isEqual:anotherObject])
     return 0;
   // Ordering objects by their address is pretty useless, 
   // so subclasses should override this is some useful way.
-  else if (self > anotherObject)
+  else if ((id)self > anotherObject)
     return 1;
   else 
     return -1;
@@ -176,14 +178,14 @@ extern int errno;
 
 + (BOOL)instancesRespondTo:(SEL)aSel
 {
-  return class_get_instance_method(self, aSel)!=METHOD_NULL;
+  return class_get_instance_method(self, aSel) != (Method_t)0;
 }
 
 - (BOOL)respondsTo:(SEL)aSel
 {
   return ((object_is_instance(self)
            ?class_get_instance_method(self->isa, aSel)
-           :class_get_class_method(self->isa, aSel))!=METHOD_NULL);
+           :class_get_class_method(self->isa, aSel)) != (Method_t)0);
 }
 
 + (IMP)instanceMethodFor:(SEL)aSel