deprecates some gnustep runtime wrappers

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29697 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
rfm 2010-02-22 10:13:20 +00:00
parent 9d46c5fd18
commit 53beb40301
39 changed files with 381 additions and 333 deletions

View file

@ -1,3 +1,45 @@
2010-02-22 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSIndexPath.m:
* Source/NSPortCoder.m:
* Source/NSCalendarDate.m:
* Source/NSPropertyList.m:
* Source/GSConcreteValueTemplate.m:
* Source/NSScanner.m:
* Source/GSFFCallInvocation.m:
* Source/NSKeyValueObserving.m:
* Source/NSSortDescriptor.m:
* Source/GSFFIInvocation.m:
* Source/NSUnarchiver.m:
* Source/NSInvocation.m:
* Source/NSFileManager.m:
* Source/NSString.m:
* Source/NSObject.m:
* Source/NSConcreteMapTable.m:
* Source/Additions/GSObjCRuntime.m:
* Source/GSSet.m:
* Source/GSString.m:
* Source/NSConnection.m:
* Source/NSAutoreleasePool.m:
* Source/NSData.m:
* Source/NSDate.m:
* Source/NSProxy.m:
* Source/NSObjCRuntime.m:
* Source/NSProtocolChecker.m:
* Source/GSValue.m:
* Source/NSSerializer.m:
* Source/NSCountedSet.m:
* Source/NSSet.m:
* Source/NSDistantObject.m:
* Source/NSArchiver.m:
* Source/NSCharacterSet.m:
* Source/NSConcreteHashTable.m:
* Headers/Additions/GNUstepBase/NSDebug+GNUstepBase.h:
* Headers/Additions/GNUstepBase/GSObjCRuntime.h:
Deprecate some GS... runtime wrappers in favour of using the new
ObjC2 API where we have emulation for systems which are actually
usig the old API. Work in progress.
2010-02-21 Richard Frith-Macdonald <rfm@gnu.org> 2010-02-21 Richard Frith-Macdonald <rfm@gnu.org>
* Source/GSString.m: Fix incorrectly initialized zone ivar. * Source/GSString.m: Fix incorrectly initialized zone ivar.

View file

@ -36,8 +36,14 @@
#include <objc/objc.h> #include <objc/objc.h>
#include <objc/objc-api.h> #include <objc/objc-api.h>
#if defined(HAVE_OBJC_RUNTIME_H) #if OBJC2RUNTIME
/* We have a real ObjC2 runtime.
*/
#include <objc/runtime.h> #include <objc/runtime.h>
#else
/* We emulate an ObjC2 runtime.
*/
#include <GNUstepBase/runtime.h>
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus
@ -94,16 +100,33 @@ extern "C" {
#define nil 0 #define nil 0
#endif #endif
#if !defined(_C_CONST)
#define _C_CONST 'r'
#endif
#if !defined(_C_IN)
#define _C_IN 'n'
#endif
#if !defined(_C_INOUT)
#define _C_INOUT 'N'
#endif
#if !defined(_C_OUT)
#define _C_OUT 'o'
#endif
#if !defined(_C_BYCOPY)
#define _C_BYCOPY 'O'
#endif
#if !defined(_C_BYREF)
#define _C_BYREF 'R'
#endif
#if !defined(_C_ONEWAY)
#define _C_ONEWAY 'V'
#endif
#if !defined(_C_GCINVISIBLE)
#define _C_GCINVISIBLE '!'
#endif
#if defined(NeXT_RUNTIME) #if defined(NeXT_RUNTIME)
#define _C_CONST 'r'
#define _C_IN 'n'
#define _C_INOUT 'N'
#define _C_OUT 'o'
#define _C_BYCOPY 'O'
#define _C_BYREF 'R'
#define _C_ONEWAY 'V'
#define _C_GCINVISIBLE '!'
#elif defined(__GNUSTEP_RUNTIME__) #elif defined(__GNUSTEP_RUNTIME__)
@ -116,7 +139,6 @@ extern "C" {
#else /* Old GNU runtime */ #else /* Old GNU runtime */
#define class_getInstanceSize(C) class_get_instance_size(C)
#define class_nextMethodList(aClass,anIterator) (({\ #define class_nextMethodList(aClass,anIterator) (({\
if (*(anIterator) == 0) \ if (*(anIterator) == 0) \
@ -125,8 +147,6 @@ extern "C" {
*(anIterator) = (*((struct objc_method_list**)(anIterator)))->method_next; \ *(anIterator) = (*((struct objc_method_list**)(anIterator)))->method_next; \
}), *(anIterator)) }), *(anIterator))
#define object_getClass(O) ((Class)*(Class*)O)
#define object_setClass(O,C) (*((Class*)O) = C)
#endif #endif
@ -205,128 +225,53 @@ GS_EXPORT unsigned int
GSClassList(Class *buffer, unsigned int max, BOOL clearCache); GSClassList(Class *buffer, unsigned int max, BOOL clearCache);
/** /**
* GSObjCClass() return the class of an instance. * GSObjCClass() is deprecated ... use object_getClass()
* Returns a nul pointer if the argument is nil.
*/ */
GS_STATIC_INLINE Class GS_EXPORT Class GSObjCClass(id obj);
GSObjCClass(id obj)
{
if (obj == nil)
return 0;
return obj->class_pointer;
}
/** /**
* Returns the superclass of this. * GSObjCSuper() is deprecated ... use class_getSuperclass()
*/ */
GS_STATIC_INLINE Class GS_EXPORT Class GSObjCSuper(Class cls);
GSObjCSuper(Class cls)
{
#ifndef NeXT_RUNTIME
if (cls != 0 && CLS_ISRESOLV (cls) == NO)
{
const char *name;
name = (const char *)cls->super_class;
if (name == NULL)
{
return 0;
}
return objc_lookup_class (name);
}
#endif
return class_get_super_class(cls);
}
/** /**
* GSObjCIsInstance() tests to see if an id is an instance. * GSObjCIsInstance() is deprecated ... use object_getClass()
* Returns NO if the argument is nil. * in conjunction with class_isMetaClass()
*/ */
GS_STATIC_INLINE BOOL GS_EXPORT BOOL GSObjCIsInstance(id obj);
GSObjCIsInstance(id obj)
{
if (obj == nil)
return NO;
return object_is_instance(obj);
}
/** /**
* GSObjCIsClass() tests to see if an id is a class. * GSObjCIsClass() is deprecated ... use object_getClass()
* Returns NO if the argument is nil. * in conjunction with class_isMetaClass()
*/ */
GS_STATIC_INLINE BOOL GS_EXPORT BOOL GSObjCIsClass(Class cls);
GSObjCIsClass(Class cls)
{
if (cls == nil)
return NO;
return object_is_class(cls);
}
/** /**
* GSObjCIsKindOf() tests to see if a class inherits from another class * Test to see if class inherits from another class
* The argument to this function must NOT be nil. * The argument to this function must NOT be nil.
*/ */
GS_STATIC_INLINE BOOL GS_EXPORT BOOL GSObjCIsKindOf(Class cls, Class other);
GSObjCIsKindOf(Class cls, Class other)
{
while (cls != Nil)
{
if (cls == other)
{
return YES;
}
cls = GSObjCSuper(cls);
}
return NO;
}
/** /**
* Given a class name, return the corresponding class or * GSClassFromName() is deprecated ... use objc_lookUpClass()
* a nul pointer if the class cannot be found. <br />
* If the argument is nil, return a nul pointer.
*/ */
GS_STATIC_INLINE Class GS_EXPORT Class GSClassFromName(const char *name);
GSClassFromName(const char *name)
{
if (name == 0)
return 0;
return objc_lookup_class(name);
}
/** /**
* Return the name of the supplied class, or a nul pointer if no class * GSNameFromClass() is deprecated ... use class_getName()
* was supplied.
*/ */
GS_STATIC_INLINE const char * GS_EXPORT const char *GSNameFromClass(Class cls);
GSNameFromClass(Class cls)
{
if (cls == 0)
return 0;
return class_get_class_name(cls);
}
/** /**
* Return the name of the object's class, or a nul pointer if no object * GSClassNameFromObject() is deprecated ... use object_getClass()
* was supplied. * in conjunction with class_getName()
*/ */
GS_STATIC_INLINE const char * GS_EXPORT const char *GSClassNameFromObject(id obj);
GSClassNameFromObject(id obj)
{
if (obj == 0)
return 0;
return object_get_class_name(obj);
}
/** /**
* Return the name of the supplied selector, or a nul pointer if no selector * GSNameFromSelector() is deprecated ... use sel_getName()
* was supplied.
*/ */
GS_STATIC_INLINE const char * GS_EXPORT const char *GSNameFromSelector(SEL sel);
GSNameFromSelector(SEL sel)
{
if (sel == 0)
return 0;
return sel_get_name(sel);
}
/** /**
* Return a selector matching the specified name, or nil if no name is * Return a selector matching the specified name, or nil if no name is
@ -653,13 +598,9 @@ GSRemoveMethodList(Class cls,
/** /**
* Returns the version number of this. * GSObjCVersion() is deprecated ... use class_getVersion()
*/ */
GS_STATIC_INLINE int GS_EXPORT int GSObjCVersion(Class cls);
GSObjCVersion(Class cls)
{
return class_get_version(cls);
}
#ifndef NeXT_Foundation_LIBRARY #ifndef NeXT_Foundation_LIBRARY
#include <Foundation/NSZone.h> #include <Foundation/NSZone.h>

View file

@ -206,7 +206,7 @@ GS_EXPORT NSString* GSDebugMethodMsg(id obj, SEL sel, const char *file,
* has not already been called.<br /> * has not already been called.<br />
* Use this from inside a function. Pass an NSString as a format, * Use this from inside a function. Pass an NSString as a format,
* followed by zero or more arguments for the format string. * followed by zero or more arguments for the format string.
* Example: GSOnceMLog(@"This function is deprecated, use another"); * Example: GSOnceFLog(@"This function is deprecated, use another");
*/ */
#define GSOnceFLog(format, args...) \ #define GSOnceFLog(format, args...) \
do { static BOOL beenHere = NO; if (beenHere == NO) {\ do { static BOOL beenHere = NO; if (beenHere == NO) {\

View file

@ -1,5 +1,5 @@
/** Implementation of ObjC runtime additions for GNUStep /** Implementation of ObjC runtime additions for GNUStep
Copyright (C) 1995-2002 Free Software Foundation, Inc. Copyright (C) 1995-2010 Free Software Foundation, Inc.
Written by: Andrew Kachites McCallum <mccallum@gnu.ai.mit.edu> Written by: Andrew Kachites McCallum <mccallum@gnu.ai.mit.edu>
Date: Aug 1995 Date: Aug 1995
@ -68,6 +68,74 @@
#define BDBGPrintf(format, args...) \ #define BDBGPrintf(format, args...) \
do { if (behavior_debug) { fprintf(stderr, (format) , ## args); } } while (0) do { if (behavior_debug) { fprintf(stderr, (format) , ## args); } } while (0)
Class
GSObjCClass(id obj)
{
return object_getClass(obj);
}
Class GSObjCSuper(Class cls)
{
return class_getSuperclass(cls);
}
BOOL
GSObjCIsInstance(id obj)
{
Class c = object_getClass(obj);
if (c != Nil && class_isMetaClass(c) == NO)
return YES;
else
return NO;
}
BOOL
GSObjCIsClass(Class cls)
{
if (class_isMetaClass(object_getClass(cls)))
return YES;
else
return NO;
}
BOOL
GSObjCIsKindOf(Class cls, Class other)
{
while (cls != Nil)
{
if (cls == other)
{
return YES;
}
cls = class_getSuperclass(cls);
}
return NO;
}
Class
GSClassFromName(const char *name)
{
return objc_lookUpClass(name);
}
const char *
GSNameFromClass(Class cls)
{
return class_getName(cls);
}
const char *
GSClassNameFromObject(id obj)
{
return class_getName(object_getClass(obj));
}
const char *
GSNameFromSelector(SEL sel)
{
return sel_getName(sel);
}
int
GSObjCVersion(Class cls)
{
return class_getVersion(cls);
}
/** /**
* This function is used to locate information about the instance * This function is used to locate information about the instance
* variable of obj called name. It returns YES if the variable * variable of obj called name. It returns YES if the variable
@ -560,7 +628,7 @@ GSObjCAddMethods (Class cls, GSMethodList methods)
GSNameFromSelector(method->method_name)); GSNameFromSelector(method->method_name));
if (!search_for_method_in_class(cls, method->method_name) if (!search_for_method_in_class(cls, method->method_name)
&& !sel_eq(method->method_name, initialize_sel)) && !sel_isEqual(method->method_name, initialize_sel))
{ {
/* As long as the method isn't defined in the CLASS, /* As long as the method isn't defined in the CLASS,
put the BEHAVIOR method in there. Thus, behavior put the BEHAVIOR method in there. Thus, behavior
@ -610,7 +678,7 @@ search_for_method_in_class (Class cls, SEL op)
if (method->method_name) if (method->method_name)
{ {
if (sel_eq(method->method_name, op)) if (sel_isEqual(method->method_name, op))
return method; return method;
} }
} }
@ -668,7 +736,7 @@ GSObjCAddMethods (Class cls, GSMethodList methods)
BDBGPrintf(" processing method [%s] ... ", name); BDBGPrintf(" processing method [%s] ... ", name);
if (!search_for_method_in_list(cls->methods, method->method_name) if (!search_for_method_in_list(cls->methods, method->method_name)
&& !sel_eq(method->method_name, initialize_sel)) && !sel_isEqual(method->method_name, initialize_sel))
{ {
/* As long as the method isn't defined in the CLASS, /* As long as the method isn't defined in the CLASS,
put the BEHAVIOR method in there. Thus, behavior put the BEHAVIOR method in there. Thus, behavior
@ -830,7 +898,7 @@ GSRemoveMethodFromList (GSMethodList list,
sel = (SEL)GSNameFromSelector (sel); sel = (SEL)GSNameFromSelector (sel);
} }
#else #else
/* Insure that we always use sel_eq on non GNU Runtimes. */ /* Insure that we always use sel_isEqual on non GNU Runtimes. */
isFree = NO; isFree = NO;
#endif #endif
@ -838,10 +906,10 @@ GSRemoveMethodFromList (GSMethodList list,
{ {
SEL method_name = list->method_list[i].method_name; SEL method_name = list->method_list[i].method_name;
/* For the GNU runtime we have use strcmp instead of sel_eq /* For the GNU runtime we have use strcmp instead of sel_isEqual
for free standing method lists. */ for free standing method lists. */
if ((isFree == YES && strcmp((char *)method_name, (char *)sel) == 0) if ((isFree == YES && strcmp((char *)method_name, (char *)sel) == 0)
|| (isFree == NO && sel_eq(method_name, sel))) || (isFree == NO && sel_isEqual(method_name, sel)))
{ {
/* Found the list. Now fill up the gap. */ /* Found the list. Now fill up the gap. */
for ((list->method_count)--; i < list->method_count; i++) for ((list->method_count)--; i < list->method_count; i++)
@ -928,10 +996,10 @@ GSMethodFromList(GSMethodList list,
GSMethod method = &list->method_list[i]; GSMethod method = &list->method_list[i];
SEL method_name = method->method_name; SEL method_name = method->method_name;
/* For the GNU runtime we have use strcmp instead of sel_eq /* For the GNU runtime we have use strcmp instead of sel_isEqual
for free standing method lists. */ for free standing method lists. */
if ((isFree == YES && strcmp((char *)method_name, (char *)sel) == 0) if ((isFree == YES && strcmp((char *)method_name, (char *)sel) == 0)
|| (isFree == NO && sel_eq(method_name, sel))) || (isFree == NO && sel_isEqual(method_name, sel)))
{ {
return method; return method;
} }

View file

@ -197,7 +197,7 @@ behavior_class_add_methods (Class class, struct objc_method_list *methods)
} }
if (!search_for_method_in_list(class,method->method_name) if (!search_for_method_in_list(class,method->method_name)
&& !sel_eq(method->method_name, initialize_sel)) && !sel_isEqual(method->method_name, initialize_sel))
{ {
/* As long as the method isn't defined in the CLASS, /* As long as the method isn't defined in the CLASS,
put the BEHAVIOR method in there. Thus, behavior put the BEHAVIOR method in there. Thus, behavior
@ -249,7 +249,7 @@ search_for_method_in_list (Class class, SEL op)
if (method->method_name) if (method->method_name)
{ {
if (sel_eq(method->method_name, op)) if (sel_isEqual(method->method_name, op))
return method; return method;
} }
} }
@ -303,7 +303,7 @@ behavior_class_add_methods (Class class,
fprintf(stderr, " processing method [%s] ... ", name); fprintf(stderr, " processing method [%s] ... ", name);
} }
if (!search_for_method_in_list(class->methods, method->method_name) if (!search_for_method_in_list(class->methods, method->method_name)
&& !sel_eq(method->method_name, initialize_sel)) && !sel_isEqual(method->method_name, initialize_sel))
{ {
/* As long as the method isn't defined in the CLASS, /* As long as the method isn't defined in the CLASS,
put the BEHAVIOR method in there. Thus, behavior put the BEHAVIOR method in there. Thus, behavior

View file

@ -132,7 +132,7 @@
- (BOOL) isEqual: (id)other - (BOOL) isEqual: (id)other
{ {
if (other != nil && GSObjCIsInstance(other) == YES if (other != nil && GSObjCIsInstance(other) == YES
&& GSObjCIsKindOf(GSObjCClass(other), GSObjCClass(self))) && GSObjCIsKindOf(object_getClass(other), object_getClass(self)))
{ {
return [self isEqualToValue: other]; return [self isEqualToValue: other];
} }
@ -144,7 +144,7 @@
typedef __typeof__(data) _dt; typedef __typeof__(data) _dt;
if (aValue != nil && GSObjCIsInstance(aValue) == YES if (aValue != nil && GSObjCIsInstance(aValue) == YES
&& GSObjCIsKindOf(GSObjCClass(aValue), GSObjCClass(self))) && GSObjCIsKindOf(object_getClass(aValue), object_getClass(self)))
{ {
_dt val = [aValue TYPE_METHOD]; _dt val = [aValue TYPE_METHOD];
#if TYPE_ORDER == 0 #if TYPE_ORDER == 0

View file

@ -290,7 +290,7 @@ gs_method_for_receiver_and_selector (id receiver, SEL sel)
if (receiver) if (receiver)
{ {
return GSGetMethod((GSObjCIsInstance(receiver) return GSGetMethod((GSObjCIsInstance(receiver)
? GSObjCClass(receiver) : (Class)receiver), ? object_getClass(receiver) : (Class)receiver),
sel, sel,
GSObjCIsInstance(receiver), GSObjCIsInstance(receiver),
YES); YES);
@ -321,7 +321,7 @@ gs_find_best_typed_sel (SEL sel)
{ {
if (!sel_get_type (sel)) if (!sel_get_type (sel))
{ {
const char *name = GSNameFromSelector(sel); const char *name = sel_getName(sel);
if (name) if (name)
{ {
@ -753,16 +753,16 @@ GSFFCallInvokeWithTargetAndImp(NSInvocation *_inv, id anObject, IMP imp)
s.self = _target; s.self = _target;
if (GSObjCIsInstance(_target)) if (GSObjCIsInstance(_target))
s.class = GSObjCSuper(GSObjCClass(_target)); s.class = class_getSuperclass(object_getClass(_target));
else else
s.class = GSObjCSuper((Class)_target); s.class = class_getSuperclass((Class)_target);
imp = objc_msg_lookup_super(&s, _selector); imp = objc_msg_lookup_super(&s, _selector);
} }
else else
{ {
GSMethod method; GSMethod method;
method = GSGetMethod((GSObjCIsInstance(_target) method = GSGetMethod((GSObjCIsInstance(_target)
? (id)GSObjCClass(_target) ? (id)object_getClass(_target)
: (id)_target), : (id)_target),
_selector, _selector,
GSObjCIsInstance(_target), GSObjCIsInstance(_target),
@ -888,7 +888,7 @@ GSInvocationCallback (void *callback_data, va_alist args)
@" to forwardInvocation: for '%s'", @" to forwardInvocation: for '%s'",
GSClassNameFromObject(obj), GSClassNameFromObject(obj),
GSObjCIsInstance(obj) ? "instance" : "class", GSObjCIsInstance(obj) ? "instance" : "class",
selector ? GSNameFromSelector(selector) : "(null)"]; selector ? sel_getName(selector) : "(null)"];
} }
sig = nil; sig = nil;
@ -916,7 +916,7 @@ GSInvocationCallback (void *callback_data, va_alist args)
if (runtimeTypes == 0 || strcmp(receiverTypes, runtimeTypes) != 0) if (runtimeTypes == 0 || strcmp(receiverTypes, runtimeTypes) != 0)
{ {
const char *runtimeName = GSNameFromSelector(selector); const char *runtimeName = sel_getName(selector);
selector = sel_get_typed_uid (runtimeName, receiverTypes); selector = sel_get_typed_uid (runtimeName, receiverTypes);
if (selector == 0) if (selector == 0)
@ -956,7 +956,7 @@ GSInvocationCallback (void *callback_data, va_alist args)
format: @"Can not determine type information for %s[%s %s]", format: @"Can not determine type information for %s[%s %s]",
GSObjCIsInstance(obj) ? "-" : "+", GSObjCIsInstance(obj) ? "-" : "+",
GSClassNameFromObject(obj), GSClassNameFromObject(obj),
selector ? GSNameFromSelector(selector) : "(null)"]; selector ? sel_getName(selector) : "(null)"];
} }
invocation = [[GSFFCallInvocation alloc] initWithMethodSignature: sig]; invocation = [[GSFFCallInvocation alloc] initWithMethodSignature: sig];

View file

@ -22,8 +22,6 @@
Boston, MA 02111 USA. Boston, MA 02111 USA.
*/ */
// FIXME: We should be using the new interfaces, not exposing the old ones.
# define __OBJC_LEGACY_GNU_MODE__
#import "common.h" #import "common.h"
#import "Foundation/NSException.h" #import "Foundation/NSException.h"
@ -31,10 +29,7 @@
#import "Foundation/NSDistantObject.h" #import "Foundation/NSDistantObject.h"
#import "Foundation/NSData.h" #import "Foundation/NSData.h"
#import "GSInvocation.h" #import "GSInvocation.h"
#import <objc/objc-api.h> #import "GNUstepBase/GSObjCRuntime.h"
#if HAVE_OBJC_RUNTIME_H
# import <objc/runtime.h>
#endif
#import <pthread.h> #import <pthread.h>
#import "cifframe.h" #import "cifframe.h"
#import "GSPrivate.h" #import "GSPrivate.h"
@ -68,7 +63,7 @@ gs_method_for_receiver_and_selector (id receiver, SEL sel)
if (receiver) if (receiver)
{ {
return GSGetMethod((GSObjCIsInstance(receiver) return GSGetMethod((GSObjCIsInstance(receiver)
? GSObjCClass(receiver) : (Class)receiver), ? object_getClass(receiver) : (Class)receiver),
sel, sel,
GSObjCIsInstance(receiver), GSObjCIsInstance(receiver),
YES); YES);
@ -99,7 +94,7 @@ gs_find_best_typed_sel (SEL sel)
{ {
if (!sel_get_type (sel)) if (!sel_get_type (sel))
{ {
const char *name = GSNameFromSelector(sel); const char *name = sel_getName(sel);
if (name) if (name)
{ {
@ -225,7 +220,8 @@ IMP gs_objc_msg_forward (SEL sel)
} }
#ifdef __GNUSTEP_RUNTIME__ #ifdef __GNUSTEP_RUNTIME__
pthread_key_t thread_slot_key; pthread_key_t thread_slot_key;
static struct objc_slot_t gs_objc_msg_forward3(id receiver, SEL op) static struct objc_slot_t
gs_objc_msg_forward3(id receiver, SEL op)
{ {
/* The slot has its version set to 0, so it can not be cached. This makes it /* The slot has its version set to 0, so it can not be cached. This makes it
* safe to free it when the thread exits. */ * safe to free it when the thread exits. */
@ -257,6 +253,7 @@ static id gs_objc_proxy_lookup(id receiver, SEL op)
/* FIXME: Should be isa, but legacy-compat mode makes it class_pointer */ /* FIXME: Should be isa, but legacy-compat mode makes it class_pointer */
Class cls = receiver->class_pointer; Class cls = receiver->class_pointer;
BOOL resolved = NO; BOOL resolved = NO;
/* Let the class try to add a method for this thing. */ /* Let the class try to add a method for this thing. */
if (class_isMetaClass(cls)) if (class_isMetaClass(cls))
{ {
@ -269,7 +266,7 @@ static id gs_objc_proxy_lookup(id receiver, SEL op)
{ {
if (class_respondsToSelector(cls->class_pointer, @selector(resolveInstanceMethod:))) if (class_respondsToSelector(cls->class_pointer, @selector(resolveInstanceMethod:)))
{ {
resolved = [class resolveInstanceMethod: op]; resolved = [cls resolveInstanceMethod: op];
} }
} }
if (resolved) if (resolved)
@ -446,16 +443,16 @@ GSFFIInvokeWithTargetAndImp(NSInvocation *_inv, id anObject, IMP imp)
s.self = _target; s.self = _target;
if (GSObjCIsInstance(_target)) if (GSObjCIsInstance(_target))
s.class = GSObjCSuper(GSObjCClass(_target)); s.class = class_getSuperclass(object_getClass(_target));
else else
s.class = GSObjCSuper((Class)_target); s.class = class_getSuperclass((Class)_target);
imp = objc_msg_lookup_super(&s, _selector); imp = objc_msg_lookup_super(&s, _selector);
} }
else else
{ {
GSMethod method; GSMethod method;
method = GSGetMethod((GSObjCIsInstance(_target) method = GSGetMethod((GSObjCIsInstance(_target)
? (Class)GSObjCClass(_target) ? (Class)object_getClass(_target)
: (Class)_target), : (Class)_target),
_selector, _selector,
GSObjCIsInstance(_target), GSObjCIsInstance(_target),
@ -555,7 +552,7 @@ GSFFIInvocationCallback(ffi_cif *cif, void *retp, void **args, void *user)
@" to forwardInvocation: for '%s'", @" to forwardInvocation: for '%s'",
GSClassNameFromObject(obj), GSClassNameFromObject(obj),
GSObjCIsInstance(obj) ? "instance" : "class", GSObjCIsInstance(obj) ? "instance" : "class",
selector ? GSNameFromSelector(selector) : "(null)"]; selector ? sel_getName(selector) : "(null)"];
} }
sig = nil; sig = nil;
@ -579,7 +576,7 @@ GSFFIInvocationCallback(ffi_cif *cif, void *retp, void **args, void *user)
if (runtimeTypes == 0 || strcmp(receiverTypes, runtimeTypes) != 0) if (runtimeTypes == 0 || strcmp(receiverTypes, runtimeTypes) != 0)
{ {
const char *runtimeName = GSNameFromSelector(selector); const char *runtimeName = sel_getName(selector);
selector = sel_get_typed_uid (runtimeName, receiverTypes); selector = sel_get_typed_uid (runtimeName, receiverTypes);
if (selector == 0) if (selector == 0)
@ -620,7 +617,7 @@ GSFFIInvocationCallback(ffi_cif *cif, void *retp, void **args, void *user)
format: @"Can not determine type information for %s[%s %s]", format: @"Can not determine type information for %s[%s %s]",
GSObjCIsInstance(obj) ? "-" : "+", GSObjCIsInstance(obj) ? "-" : "+",
GSClassNameFromObject(obj), GSClassNameFromObject(obj),
selector ? GSNameFromSelector(selector) : "(null)"]; selector ? sel_getName(selector) : "(null)"];
} }
invocation = [[GSFFIInvocation alloc] initWithCallback: cif invocation = [[GSFFIInvocation alloc] initWithCallback: cif

View file

@ -293,7 +293,7 @@ static Class mutableSetClass;
} }
// Loop for all members in otherSet // Loop for all members in otherSet
c = GSObjCClass(otherSet); c = object_getClass(otherSet);
if (c == setClass || c == mutableSetClass) if (c == setClass || c == mutableSetClass)
{ {
GSIMapTable m = &((GSSet*)otherSet)->map; GSIMapTable m = &((GSSet*)otherSet)->map;
@ -381,7 +381,7 @@ static Class mutableSetClass;
} }
else else
{ {
Class c = GSObjCClass(other); Class c = object_getClass(other);
if (c == setClass || c == mutableSetClass) if (c == setClass || c == mutableSetClass)
{ {

View file

@ -831,7 +831,7 @@ fixBOM(unsigned char **bytes, NSUInteger*length, BOOL *owned,
[NSException raise: NSInvalidArgumentException [NSException raise: NSInvalidArgumentException
format: @"-initWithString: given non-string object"]; format: @"-initWithString: given non-string object"];
c = GSObjCClass(string); c = object_getClass(string);
length = [string length]; length = [string length];
if (GSObjCIsKindOf(c, GSCStringClass) == YES || c == NSConstantStringClass if (GSObjCIsKindOf(c, GSCStringClass) == YES || c == NSConstantStringClass
|| (GSObjCIsKindOf(c, GSMutableStringClass) == YES || (GSObjCIsKindOf(c, GSMutableStringClass) == YES
@ -1215,7 +1215,7 @@ compare_c(GSStr self, NSString *aString, unsigned mask, NSRange aRange)
{ {
Class c; Class c;
c = GSObjCClass(aString); c = object_getClass(aString);
if (GSObjCIsKindOf(c, GSUnicodeStringClass) == YES if (GSObjCIsKindOf(c, GSUnicodeStringClass) == YES
|| (c == GSMutableStringClass && ((GSStr)aString)->_flags.wide == 1)) || (c == GSMutableStringClass && ((GSStr)aString)->_flags.wide == 1))
return strCompCsUs((id)self, aString, mask, aRange); return strCompCsUs((id)self, aString, mask, aRange);
@ -1232,7 +1232,7 @@ compare_u(GSStr self, NSString *aString, unsigned mask, NSRange aRange)
{ {
Class c; Class c;
c = GSObjCClass(aString); c = object_getClass(aString);
if (GSObjCIsKindOf(c, GSUnicodeStringClass) if (GSObjCIsKindOf(c, GSUnicodeStringClass)
|| (c == GSMutableStringClass && ((GSStr)aString)->_flags.wide == 1)) || (c == GSMutableStringClass && ((GSStr)aString)->_flags.wide == 1))
return strCompUsUs((id)self, aString, mask, aRange); return strCompUsUs((id)self, aString, mask, aRange);
@ -2139,7 +2139,7 @@ isEqual_c(GSStr self, id anObject)
{ {
return NO; return NO;
} }
c = GSObjCClass(anObject); c = object_getClass(anObject);
if (c == NSConstantStringClass) if (c == NSConstantStringClass)
{ {
GSStr other = (GSStr)anObject; GSStr other = (GSStr)anObject;
@ -2207,7 +2207,7 @@ isEqual_u(GSStr self, id anObject)
{ {
return NO; return NO;
} }
c = GSObjCClass(anObject); c = object_getClass(anObject);
if (c == NSConstantStringClass) if (c == NSConstantStringClass)
{ {
GSStr other = (GSStr)anObject; GSStr other = (GSStr)anObject;
@ -2617,11 +2617,11 @@ GSPrivateRangeOfString(NSString *receiver, NSString *target)
{ {
Class c; Class c;
c = GSObjCClass(receiver); c = object_getClass(receiver);
if (GSObjCIsKindOf(c, GSUnicodeStringClass) == YES if (GSObjCIsKindOf(c, GSUnicodeStringClass) == YES
|| (c == GSMutableStringClass && ((GSStr)receiver)->_flags.wide == 1)) || (c == GSMutableStringClass && ((GSStr)receiver)->_flags.wide == 1))
{ {
c = GSObjCClass(target); c = object_getClass(target);
if (GSObjCIsKindOf(c, GSUnicodeStringClass) == YES if (GSObjCIsKindOf(c, GSUnicodeStringClass) == YES
|| (c == GSMutableStringClass && ((GSStr)target)->_flags.wide == 1)) || (c == GSMutableStringClass && ((GSStr)target)->_flags.wide == 1))
return (GSRSFunc)strRangeUsUs; return (GSRSFunc)strRangeUsUs;
@ -2636,7 +2636,7 @@ GSPrivateRangeOfString(NSString *receiver, NSString *target)
|| c == NSConstantStringClass || c == NSConstantStringClass
|| (c == GSMutableStringClass && ((GSStr)target)->_flags.wide == 0)) || (c == GSMutableStringClass && ((GSStr)target)->_flags.wide == 0))
{ {
c = GSObjCClass(target); c = object_getClass(target);
if (GSObjCIsKindOf(c, GSUnicodeStringClass) == YES if (GSObjCIsKindOf(c, GSUnicodeStringClass) == YES
|| (c == GSMutableStringClass && ((GSStr)target)->_flags.wide == 1)) || (c == GSMutableStringClass && ((GSStr)target)->_flags.wide == 1))
return (GSRSFunc)strRangeCsUs; return (GSRSFunc)strRangeCsUs;
@ -2658,7 +2658,7 @@ rangeOfString_c(GSStr self, NSString *aString, unsigned mask, NSRange aRange)
{ {
Class c; Class c;
c = GSObjCClass(aString); c = object_getClass(aString);
if (GSObjCIsKindOf(c, GSUnicodeStringClass) == YES if (GSObjCIsKindOf(c, GSUnicodeStringClass) == YES
|| (c == GSMutableStringClass && ((GSStr)aString)->_flags.wide == 1)) || (c == GSMutableStringClass && ((GSStr)aString)->_flags.wide == 1))
return strRangeCsUs((id)self, aString, mask, aRange); return strRangeCsUs((id)self, aString, mask, aRange);
@ -2675,7 +2675,7 @@ rangeOfString_u(GSStr self, NSString *aString, unsigned mask, NSRange aRange)
{ {
Class c; Class c;
c = GSObjCClass(aString); c = object_getClass(aString);
if (GSObjCIsKindOf(c, GSUnicodeStringClass) == YES if (GSObjCIsKindOf(c, GSUnicodeStringClass) == YES
|| (c == GSMutableStringClass && ((GSStr)aString)->_flags.wide == 1)) || (c == GSMutableStringClass && ((GSStr)aString)->_flags.wide == 1))
return strRangeUsUs((id)self, aString, mask, aRange); return strRangeUsUs((id)self, aString, mask, aRange);
@ -2737,7 +2737,7 @@ transmute(GSStr self, NSString *aString)
{ {
GSStr other = (GSStr)aString; GSStr other = (GSStr)aString;
BOOL transmute = YES; BOOL transmute = YES;
Class c = GSObjCClass(aString); // NB aString must not be nil Class c = object_getClass(aString); // NB aString must not be nil
if (self->_flags.wide == 1) if (self->_flags.wide == 1)
{ {
@ -4769,7 +4769,7 @@ NSAssert(_flags.owned == 1 && _zone != 0, NSInternalInconsistencyException);
{ {
return NO; return NO;
} }
c = GSObjCClass(anObject); c = object_getClass(anObject);
if (GSObjCIsKindOf(c, GSCStringClass) == YES if (GSObjCIsKindOf(c, GSCStringClass) == YES
|| c == NSConstantStringClass || c == NSConstantStringClass
@ -4819,7 +4819,7 @@ NSAssert(_flags.owned == 1 && _zone != 0, NSInternalInconsistencyException);
{ {
return NO; return NO;
} }
c = GSObjCClass(anObject); c = object_getClass(anObject);
if (GSObjCIsKindOf(c, GSCStringClass) == YES if (GSObjCIsKindOf(c, GSCStringClass) == YES
|| c == NSConstantStringClass || c == NSConstantStringClass

View file

@ -149,7 +149,7 @@ typeSize(const char* type)
{ {
if (aValue == nil) if (aValue == nil)
return NO; return NO;
if (GSObjCClass(aValue) != GSObjCClass(self)) if (object_getClass(aValue) != object_getClass(self))
return NO; return NO;
if (strcmp(objctype, ((GSValue*)aValue)->objctype) != 0) if (strcmp(objctype, ((GSValue*)aValue)->objctype) != 0)
return NO; return NO;

View file

@ -448,9 +448,9 @@ static Class NSMutableDataMallocClass;
} }
while (done == NO) while (done == NO)
{ {
int tmp = GSObjCVersion(c); int tmp = class_getVersion(c);
unsigned version = tmp; unsigned version = tmp;
Class s = GSObjCSuper(c); Class s = class_getSuperclass(c);
if (tmp < 0) if (tmp < 0)
{ {
@ -865,12 +865,12 @@ static Class NSMutableDataMallocClass;
GSIMapNode node; GSIMapNode node;
Class c; Class c;
c = GSClassFromName([trueName cString]); c = objc_lookUpClass([trueName cString]);
node = GSIMapNodeForKey(_namMap, (GSIMapKey)c); node = GSIMapNodeForKey(_namMap, (GSIMapKey)c);
if (node) if (node)
{ {
c = (Class)node->value.ptr; c = (Class)node->value.ptr;
return [NSString stringWithUTF8String: GSNameFromClass(c)]; return [NSString stringWithUTF8String: class_getName(c)];
} }
} }
return trueName; return trueName;
@ -891,13 +891,13 @@ static Class NSMutableDataMallocClass;
Class tc; Class tc;
Class ic; Class ic;
tc = GSClassFromName([trueName cString]); tc = objc_lookUpClass([trueName cString]);
if (tc == 0) if (tc == 0)
{ {
[NSException raise: NSInternalInconsistencyException [NSException raise: NSInternalInconsistencyException
format: @"Can't find class '%@'.", trueName]; format: @"Can't find class '%@'.", trueName];
} }
ic = GSClassFromName([inArchiveName cString]); ic = objc_lookUpClass([inArchiveName cString]);
if (ic == 0) if (ic == 0)
{ {
[NSException raise: NSInternalInconsistencyException [NSException raise: NSInternalInconsistencyException

View file

@ -419,7 +419,7 @@ static IMP initImp;
"nil object encountered in autorelease pool\n"); "nil object encountered in autorelease pool\n");
continue; continue;
} }
c = GSObjCClass(anObject); c = object_getClass(anObject);
if (c == 0) if (c == 0)
{ {
[NSException raise: NSInternalInconsistencyException [NSException raise: NSInternalInconsistencyException

View file

@ -101,7 +101,7 @@ offset(NSTimeZone *tz, NSDate *d)
} }
else else
{ {
Class c = GSObjCClass(tz); Class c = object_getClass(tz);
if (c == dstClass && dstOffIMP != 0) if (c == dstClass && dstOffIMP != 0)
{ {
@ -133,7 +133,7 @@ abbrev(NSTimeZone *tz, NSDate *d)
} }
else else
{ {
Class c = GSObjCClass(tz); Class c = object_getClass(tz);
if (c == dstClass && dstAbrIMP != 0) if (c == dstClass && dstAbrIMP != 0)
{ {

View file

@ -847,7 +847,7 @@ static Class concreteMutableClass = nil;
- (id) init - (id) init
{ {
if (GSObjCClass(self) == abstractClass) if (object_getClass(self) == abstractClass)
{ {
id obj; id obj;
@ -1124,7 +1124,7 @@ static Class concreteMutableClass = nil;
- (id) init - (id) init
{ {
if (GSObjCClass(self) == abstractMutableClass) if (object_getClass(self) == abstractMutableClass)
{ {
id obj; id obj;
@ -1138,7 +1138,7 @@ static Class concreteMutableClass = nil;
- (id) initWithBitmap: (NSData*)bitmap - (id) initWithBitmap: (NSData*)bitmap
{ {
if (GSObjCClass(self) == abstractMutableClass) if (object_getClass(self) == abstractMutableClass)
{ {
id obj; id obj;

View file

@ -143,22 +143,22 @@ NSCompareHashTables(NSHashTable *table1, NSHashTable *table2)
{ {
return NO; return NO;
} }
if (GSObjCClass(table1) != concreteClass if (object_getClass(table1) != concreteClass
&& GSObjCClass(table2) == concreteClass) && object_getClass(table2) == concreteClass)
{ {
id t = table1; id t = table1;
table1 = table2; table1 = table2;
table2 = t; table2 = t;
} }
if (GSObjCClass(table1) == concreteClass) if (object_getClass(table1) == concreteClass)
{ {
BOOL result = YES; BOOL result = YES;
NSHashEnumerator enumerator; NSHashEnumerator enumerator;
GSIMapNode n1; GSIMapNode n1;
enumerator = NSEnumerateHashTable(table1); enumerator = NSEnumerateHashTable(table1);
if (GSObjCClass(table2) == concreteClass) if (object_getClass(table2) == concreteClass)
{ {
GSIMapTable t2 = (GSIMapTable)table2; GSIMapTable t2 = (GSIMapTable)table2;
@ -371,7 +371,7 @@ NSEnumerateHashTable(NSHashTable *table)
NSWarnFLog(@"Null table argument supplied"); NSWarnFLog(@"Null table argument supplied");
return v; return v;
} }
if (GSObjCClass(table) == concreteClass) if (object_getClass(table) == concreteClass)
{ {
return GSIMapEnumeratorForMap((GSIMapTable)table); return GSIMapEnumeratorForMap((GSIMapTable)table);
} }
@ -408,7 +408,7 @@ NSHashGet(NSHashTable *table, const void *element)
NSWarnFLog(@"Null table argument supplied"); NSWarnFLog(@"Null table argument supplied");
return 0; return 0;
} }
if (GSObjCClass(table) == concreteClass) if (object_getClass(table) == concreteClass)
{ {
GSIMapNode n; GSIMapNode n;
@ -443,7 +443,7 @@ NSHashInsert(NSHashTable *table, const void *element)
[NSException raise: NSInvalidArgumentException [NSException raise: NSInvalidArgumentException
format: @"Attempt to place null in hash table"]; format: @"Attempt to place null in hash table"];
} }
if (GSObjCClass(table) == concreteClass) if (object_getClass(table) == concreteClass)
{ {
GSIMapTable t = (GSIMapTable)table; GSIMapTable t = (GSIMapTable)table;
GSIMapNode n; GSIMapNode n;
@ -487,7 +487,7 @@ NSHashInsertIfAbsent(NSHashTable *table, const void *element)
[NSException raise: NSInvalidArgumentException [NSException raise: NSInvalidArgumentException
format: @"Attempt to place null in hash table"]; format: @"Attempt to place null in hash table"];
} }
if (GSObjCClass(table) == concreteClass) if (object_getClass(table) == concreteClass)
{ {
GSIMapTable t = (GSIMapTable)table; GSIMapTable t = (GSIMapTable)table;
GSIMapNode n; GSIMapNode n;
@ -538,7 +538,7 @@ NSHashInsertKnownAbsent(NSHashTable *table, const void *element)
[NSException raise: NSInvalidArgumentException [NSException raise: NSInvalidArgumentException
format: @"Attempt to place null in hash table"]; format: @"Attempt to place null in hash table"];
} }
if (GSObjCClass(table) == concreteClass) if (object_getClass(table) == concreteClass)
{ {
GSIMapTable t = (GSIMapTable)table; GSIMapTable t = (GSIMapTable)table;
GSIMapNode n; GSIMapNode n;
@ -582,7 +582,7 @@ NSHashRemove(NSHashTable *table, const void *element)
NSWarnFLog(@"Nul table argument supplied"); NSWarnFLog(@"Nul table argument supplied");
return; return;
} }
if (GSObjCClass(table) == concreteClass) if (object_getClass(table) == concreteClass)
{ {
GSIMapTable map = (GSIMapTable)table; GSIMapTable map = (GSIMapTable)table;
GSIMapBucket bucket; GSIMapBucket bucket;
@ -658,7 +658,7 @@ NSResetHashTable(NSHashTable *table)
NSWarnFLog(@"Nul table argument supplied"); NSWarnFLog(@"Nul table argument supplied");
return; return;
} }
if (GSObjCClass(table) == concreteClass) if (object_getClass(table) == concreteClass)
{ {
NSConcreteHashTable *t = (NSConcreteHashTable*)table; NSConcreteHashTable *t = (NSConcreteHashTable*)table;

View file

@ -221,8 +221,8 @@ NSCompareMapTables(NSMapTable *table1, NSMapTable *table2)
return NO; return NO;
} }
if (GSObjCClass(table1) != concreteClass if (object_getClass(table1) != concreteClass
&& GSObjCClass(table2) == concreteClass) && object_getClass(table2) == concreteClass)
{ {
id t = table1; id t = table1;
@ -230,7 +230,7 @@ NSCompareMapTables(NSMapTable *table1, NSMapTable *table2)
table2 = t; table2 = t;
} }
if (GSObjCClass(table1) == concreteClass) if (object_getClass(table1) == concreteClass)
{ {
NSConcreteMapTable *c1 = (NSConcreteMapTable*)table1; NSConcreteMapTable *c1 = (NSConcreteMapTable*)table1;
GSIMapTable t1 = (GSIMapTable)table1; GSIMapTable t1 = (GSIMapTable)table1;
@ -239,7 +239,7 @@ NSCompareMapTables(NSMapTable *table1, NSMapTable *table2)
GSIMapNode n1; GSIMapNode n1;
enumerator = GSIMapEnumeratorForMap(t1); enumerator = GSIMapEnumeratorForMap(t1);
if (GSObjCClass(table2) == concreteClass) if (object_getClass(table2) == concreteClass)
{ {
GSIMapTable t2 = (GSIMapTable)table2; GSIMapTable t2 = (GSIMapTable)table2;
@ -356,7 +356,7 @@ NSCopyMapTableWithZone(NSMapTable *table, NSZone *zone)
#endif #endif
GSIMapInitWithZoneAndCapacity(t, zone, ((GSIMapTable)table)->nodeCount); GSIMapInitWithZoneAndCapacity(t, zone, ((GSIMapTable)table)->nodeCount);
if (GSObjCClass(table) == concreteClass) if (object_getClass(table) == concreteClass)
{ {
NSMapEnumerator enumerator; NSMapEnumerator enumerator;
@ -393,7 +393,7 @@ NSCountMapTable(NSMapTable *table)
NSWarnFLog(@"Null table argument supplied"); NSWarnFLog(@"Null table argument supplied");
return 0; return 0;
} }
if (GSObjCClass(table) == concreteClass) if (object_getClass(table) == concreteClass)
{ {
return ((GSIMapTable)table)->nodeCount; return ((GSIMapTable)table)->nodeCount;
} }
@ -518,7 +518,7 @@ NSEnumerateMapTable(NSMapTable *table)
NSWarnFLog(@"Null table argument supplied"); NSWarnFLog(@"Null table argument supplied");
return v; return v;
} }
if (GSObjCClass(table) == concreteClass) if (object_getClass(table) == concreteClass)
{ {
return GSIMapEnumeratorForMap((GSIMapTable)table); return GSIMapEnumeratorForMap((GSIMapTable)table);
} }
@ -563,7 +563,7 @@ NSMapGet(NSMapTable *table, const void *key)
NSWarnFLog(@"Null table argument supplied"); NSWarnFLog(@"Null table argument supplied");
return 0; return 0;
} }
if (GSObjCClass(table) == concreteClass) if (object_getClass(table) == concreteClass)
{ {
GSIMapNode n; GSIMapNode n;
@ -598,7 +598,7 @@ NSMapInsert(NSMapTable *table, const void *key, const void *value)
[NSException raise: NSInvalidArgumentException [NSException raise: NSInvalidArgumentException
format: @"Attempt to place key-value in null table"]; format: @"Attempt to place key-value in null table"];
} }
if (GSObjCClass(table) == concreteClass) if (object_getClass(table) == concreteClass)
{ {
GSIMapTable t = (GSIMapTable)table; GSIMapTable t = (GSIMapTable)table;
GSIMapNode n; GSIMapNode n;
@ -653,7 +653,7 @@ NSMapInsertIfAbsent(NSMapTable *table, const void *key, const void *value)
[NSException raise: NSInvalidArgumentException [NSException raise: NSInvalidArgumentException
format: @"Attempt to place key-value in null table"]; format: @"Attempt to place key-value in null table"];
} }
if (GSObjCClass(table) == concreteClass) if (object_getClass(table) == concreteClass)
{ {
GSIMapTable t = (GSIMapTable)table; GSIMapTable t = (GSIMapTable)table;
GSIMapNode n; GSIMapNode n;
@ -710,7 +710,7 @@ NSMapInsertKnownAbsent(NSMapTable *table, const void *key, const void *value)
[NSException raise: NSInvalidArgumentException [NSException raise: NSInvalidArgumentException
format: @"Attempt to place key-value in null table"]; format: @"Attempt to place key-value in null table"];
} }
if (GSObjCClass(table) == concreteClass) if (object_getClass(table) == concreteClass)
{ {
GSIMapTable t = (GSIMapTable)table; GSIMapTable t = (GSIMapTable)table;
GSIMapNode n; GSIMapNode n;
@ -771,7 +771,7 @@ NSMapMember(NSMapTable *table, const void *key,
NSWarnFLog(@"Null table argument supplied"); NSWarnFLog(@"Null table argument supplied");
return NO; return NO;
} }
if (GSObjCClass(table) == concreteClass) if (object_getClass(table) == concreteClass)
{ {
GSIMapNode n; GSIMapNode n;
@ -811,7 +811,7 @@ NSMapRemove(NSMapTable *table, const void *key)
NSWarnFLog(@"Null table argument supplied"); NSWarnFLog(@"Null table argument supplied");
return; return;
} }
if (GSObjCClass(table) == concreteClass) if (object_getClass(table) == concreteClass)
{ {
if (((GSIMapTable)table)->nodeCount > 0) if (((GSIMapTable)table)->nodeCount > 0)
{ {
@ -928,7 +928,7 @@ NSResetMapTable(NSMapTable *table)
NSWarnFLog(@"Null table argument supplied"); NSWarnFLog(@"Null table argument supplied");
return; return;
} }
if (GSObjCClass(table) == concreteClass) if (object_getClass(table) == concreteClass)
{ {
if (((GSIMapTable)table)->nodeCount > 0) if (((GSIMapTable)table)->nodeCount > 0)
{ {
@ -956,7 +956,7 @@ NSStringFromMapTable(NSMapTable *table)
NSWarnFLog(@"Null table argument supplied"); NSWarnFLog(@"Null table argument supplied");
return nil; return nil;
} }
if (GSObjCClass(table) == concreteClass) if (object_getClass(table) == concreteClass)
{ {
GSIMapTable t = (GSIMapTable)table; GSIMapTable t = (GSIMapTable)table;
NSMutableString *string; NSMutableString *string;

View file

@ -1991,7 +1991,7 @@ static NSLock *cached_proxies_gate = nil;
type = [[object methodSignatureForSelector: [inv selector]] methodType]; type = [[object methodSignatureForSelector: [inv selector]] methodType];
if (type) if (type)
{ {
sel_register_typed_name(GSNameFromSelector([inv selector]), type); sel_register_typed_name(sel_getName([inv selector]), type);
} }
} }
NSParameterAssert(type); NSParameterAssert(type);
@ -2032,7 +2032,7 @@ static NSLock *cached_proxies_gate = nil;
[self _sendOutRmc: op type: METHOD_REQUEST]; [self _sendOutRmc: op type: METHOD_REQUEST];
NSDebugMLLog(@"NSConnection", @"Sent message %s RMC %d to 0x%x", NSDebugMLLog(@"NSConnection", @"Sent message %s RMC %d to 0x%x",
GSNameFromSelector([inv selector]), seq, (uintptr_t)self); sel_getName([inv selector]), seq, (uintptr_t)self);
if (needsResponse == NO) if (needsResponse == NO)
{ {
@ -2557,7 +2557,7 @@ static NSLock *cached_proxies_gate = nil;
} }
else if (GSObjCIsInstance(object)) else if (GSObjCIsInstance(object))
{ {
meth = GSGetMethod(GSObjCClass(object), selector, YES, YES); meth = GSGetMethod(object_getClass(object), selector, YES, YES);
} }
else else
{ {
@ -2574,9 +2574,9 @@ static NSLock *cached_proxies_gate = nil;
NSDebugLog(@"Local object <%p %s> doesn't implement: %s directly. " NSDebugLog(@"Local object <%p %s> doesn't implement: %s directly. "
@"Will search for arbitrary signature.", @"Will search for arbitrary signature.",
object, object,
GSNameFromClass(GSObjCIsClass(object) class_getName(GSObjCIsClass(object)
? object : (id)GSObjCClass(object)), ? object : (id)object_getClass(object)),
GSNameFromSelector(selector)); sel_getName(selector));
type = GSTypesFromSelector(selector); type = GSTypesFromSelector(selector);
} }
@ -2587,7 +2587,7 @@ static NSLock *cached_proxies_gate = nil;
{ {
[NSException raise: NSInvalidArgumentException [NSException raise: NSInvalidArgumentException
format: @"NSConection types (%s / %s) missmatch for %s", format: @"NSConection types (%s / %s) missmatch for %s",
encoded_types, type, GSNameFromSelector(selector)]; encoded_types, type, sel_getName(selector)];
} }
sig = [NSMethodSignature signatureWithObjCTypes: type]; sig = [NSMethodSignature signatureWithObjCTypes: type];

View file

@ -115,7 +115,7 @@ static Class NSCountedSet_concrete_class;
- (id) initWithCoder: (NSCoder*)aCoder - (id) initWithCoder: (NSCoder*)aCoder
{ {
unsigned count; unsigned count;
Class c = GSObjCClass(self); Class c = object_getClass(self);
if (c == NSCountedSet_abstract_class) if (c == NSCountedSet_abstract_class)
{ {

View file

@ -1100,12 +1100,12 @@ failure:
length: ni length: ni
atCursor: cursor]; atCursor: cursor];
name[ni] = '\0'; name[ni] = '\0';
c = GSClassFromName(name); c = objc_lookUpClass(name);
if (c == 0) if (c == 0)
{ {
NSLog(@"[%s %s] can't find class - %s", NSLog(@"[%s %s] can't find class - %s",
GSNameFromClass([self class]), class_getName([self class]),
GSNameFromSelector(_cmd), name); sel_getName(_cmd), name);
} }
*(Class*)data = c; *(Class*)data = c;
} }
@ -2265,7 +2265,7 @@ failure:
} }
case _C_CLASS: case _C_CLASS:
{ {
const char *name = *(Class*)data?GSNameFromClass(*(Class*)data):""; const char *name = *(Class*)data?class_getName(*(Class*)data):"";
uint16_t ln = (uint16_t)strlen(name); uint16_t ln = (uint16_t)strlen(name);
uint16_t ni; uint16_t ni;
@ -2279,7 +2279,7 @@ failure:
} }
case _C_SEL: case _C_SEL:
{ {
const char *name = *(SEL*)data?GSNameFromSelector(*(SEL*)data):""; const char *name = *(SEL*)data?sel_getName(*(SEL*)data):"";
uint16_t ln = (name == 0) ? 0 : (uint16_t)strlen(name); uint16_t ln = (name == 0) ? 0 : (uint16_t)strlen(name);
const char *types = *(SEL*)data?GSTypesFromSelector(*(SEL*)data):""; const char *types = *(SEL*)data?GSTypesFromSelector(*(SEL*)data):"";
uint16_t lt = (types == 0) ? 0 : (uint16_t)strlen(types); uint16_t lt = (types == 0) ? 0 : (uint16_t)strlen(types);
@ -2762,12 +2762,12 @@ getBytes(void* dst, void* src, unsigned len, unsigned limit, unsigned *pos)
getBytes((void*)name, bytes, ni, length, cursor); getBytes((void*)name, bytes, ni, length, cursor);
name[ni] = '\0'; name[ni] = '\0';
c = GSClassFromName(name); c = objc_lookUpClass(name);
if (c == 0) if (c == 0)
{ {
NSLog(@"[%s %s] can't find class - %s", NSLog(@"[%s %s] can't find class - %s",
GSNameFromClass([self class]), class_getName([self class]),
GSNameFromSelector(_cmd), name); sel_getName(_cmd), name);
} }
*(Class*)data = c; *(Class*)data = c;
} }
@ -3572,7 +3572,7 @@ getBytes(void* dst, void* src, unsigned len, unsigned limit, unsigned *pos)
} }
case _C_CLASS: case _C_CLASS:
{ {
const char *name = *(Class*)data?GSNameFromClass(*(Class*)data):""; const char *name = *(Class*)data?class_getName(*(Class*)data):"";
uint16_t ln = (uint16_t)strlen(name); uint16_t ln = (uint16_t)strlen(name);
uint32_t minimum = length + ln + sizeof(uint16_t); uint32_t minimum = length + ln + sizeof(uint16_t);
uint16_t ni; uint16_t ni;
@ -3593,7 +3593,7 @@ getBytes(void* dst, void* src, unsigned len, unsigned limit, unsigned *pos)
} }
case _C_SEL: case _C_SEL:
{ {
const char *name = *(SEL*)data?GSNameFromSelector(*(SEL*)data):""; const char *name = *(SEL*)data?sel_getName(*(SEL*)data):"";
uint16_t ln = (name == 0) ? 0 : (uint16_t)strlen(name); uint16_t ln = (name == 0) ? 0 : (uint16_t)strlen(name);
const char *types = *(SEL*)data?GSTypesFromSelector(*(SEL*)data):""; const char *types = *(SEL*)data?GSTypesFromSelector(*(SEL*)data):"";
uint16_t lt = (types == 0) ? 0 : (uint16_t)strlen(types); uint16_t lt = (types == 0) ? 0 : (uint16_t)strlen(types);

View file

@ -110,7 +110,7 @@ otherTime(NSDate* other)
[NSException raise: NSInvalidArgumentException format: @"other time nil"]; [NSException raise: NSInvalidArgumentException format: @"other time nil"];
if (GSObjCIsInstance(other) == NO) if (GSObjCIsInstance(other) == NO)
[NSException raise: NSInvalidArgumentException format: @"other time bad"]; [NSException raise: NSInvalidArgumentException format: @"other time bad"];
c = GSObjCClass(other); c = object_getClass(other);
if (c == concreteClass || c == calendarClass) if (c == concreteClass || c == calendarClass)
return ((NSGDate*)other)->_seconds_since_ref; return ((NSGDate*)other)->_seconds_since_ref;
else else

View file

@ -159,7 +159,7 @@ enum proxyLocation
+ (void) initialize + (void) initialize
{ {
if (self == GSClassFromName("GSDistantObjectPlaceHolder")) if (self == objc_lookUpClass("GSDistantObjectPlaceHolder"))
{ {
distantObjectClass = [NSDistantObject class]; distantObjectClass = [NSDistantObject class];
} }
@ -403,7 +403,7 @@ enum proxyLocation
{ {
if (self == [NSDistantObject class]) if (self == [NSDistantObject class])
{ {
placeHolder = GSClassFromName("GSDistantObjectPlaceHolder"); placeHolder = objc_lookUpClass("GSDistantObjectPlaceHolder");
} }
} }
@ -687,7 +687,7 @@ enum proxyLocation
* signature of methodSignatureForSelector:, so we hack in * signature of methodSignatureForSelector:, so we hack in
* the signature required manually :-( * the signature required manually :-(
*/ */
if (sel_eq(aSelector, _cmd)) if (sel_isEqual(aSelector, _cmd))
{ {
static NSMethodSignature *sig = nil; static NSMethodSignature *sig = nil;
@ -697,7 +697,7 @@ enum proxyLocation
} }
return sig; return sig;
} }
if (sel_eq(aSelector, @selector(methodType))) if (sel_isEqual(aSelector, @selector(methodType)))
{ {
static NSMethodSignature *sig = nil; static NSMethodSignature *sig = nil;
@ -720,7 +720,7 @@ enum proxyLocation
* (implemented in NSObject.m) to examine the protocol contents * (implemented in NSObject.m) to examine the protocol contents
* without sending any ObjectiveC message to it. * without sending any ObjectiveC message to it.
*/ */
if ((uintptr_t)GSObjCClass(_protocol) == 0x2) if ((uintptr_t)object_getClass(_protocol) == 0x2)
{ {
extern struct objc_method_description* extern struct objc_method_description*
GSDescriptionForInstanceMethod(); GSDescriptionForInstanceMethod();
@ -732,7 +732,7 @@ enum proxyLocation
} }
if (mth == 0) if (mth == 0)
{ {
if ((uintptr_t)GSObjCClass(_protocol) == 0x2) if ((uintptr_t)object_getClass(_protocol) == 0x2)
{ {
extern struct objc_method_description* extern struct objc_method_description*
GSDescriptionForClassMethod(); GSDescriptionForClassMethod();
@ -878,7 +878,7 @@ static inline BOOL class_is_kind_of (Class self, Class aClassObject)
{ {
Class class; Class class;
for (class = self; class!=Nil; class = GSObjCSuper(class)) for (class = self; class!=Nil; class = class_getSuperclass(class))
if (class==aClassObject) if (class==aClassObject)
return YES; return YES;
return NO; return NO;
@ -911,7 +911,7 @@ static inline BOOL class_is_kind_of (Class self, Class aClassObject)
- (id) forward: (SEL)aSel :(arglist_t)frame - (id) forward: (SEL)aSel :(arglist_t)frame
{ {
if (debug_proxy) if (debug_proxy)
NSLog(@"NSDistantObject forwarding %s\n", GSNameFromSelector(aSel)); NSLog(@"NSDistantObject forwarding %s\n", sel_getName(aSel));
if (![_connection isValid]) if (![_connection isValid])
[NSException [NSException

View file

@ -403,7 +403,7 @@ static NSStringEncoding defaultEncoding;
lpath = [defaultManager fileSystemRepresentationWithPath: path]; lpath = [defaultManager fileSystemRepresentationWithPath: path];
#ifndef __MINGW32__ #ifndef __MINGW32__
if (GSObjCClass(attributes) == GSAttrDictionaryClass) if (object_getClass(attributes) == GSAttrDictionaryClass)
{ {
num = ((GSAttrDictionary*)attributes)->statbuf.st_uid; num = ((GSAttrDictionary*)attributes)->statbuf.st_uid;
} }
@ -467,7 +467,7 @@ static NSStringEncoding defaultEncoding;
} }
} }
if (GSObjCClass(attributes) == GSAttrDictionaryClass) if (object_getClass(attributes) == GSAttrDictionaryClass)
{ {
num = ((GSAttrDictionary*)attributes)->statbuf.st_gid; num = ((GSAttrDictionary*)attributes)->statbuf.st_gid;
} }

View file

@ -399,7 +399,7 @@ static NSIndexPath *dummy = nil;
{ {
return YES; return YES;
} }
if (other == nil || GSObjCIsKindOf(GSObjCClass(other), myClass) == NO) if (other == nil || GSObjCIsKindOf(object_getClass(other), myClass) == NO)
{ {
return NO; return NO;
} }

View file

@ -653,8 +653,8 @@ _arg_addr(NSInvocation *inv, int index)
snprintf (buffer, 1024, "<%s %p selector: %s target: %s>", \ snprintf (buffer, 1024, "<%s %p selector: %s target: %s>", \
GSClassNameFromObject(self), \ GSClassNameFromObject(self), \
self, \ self, \
_selector ? GSNameFromSelector(_selector) : "nil", \ _selector ? sel_getName(_selector) : "nil", \
_target ? GSNameFromClass([_target class]) : "nil" \ _target ? class_getName([_target class]) : "nil" \
); );
return [NSString stringWithUTF8String: buffer]; return [NSString stringWithUTF8String: buffer];
@ -800,12 +800,12 @@ _arg_addr(NSInvocation *inv, int index)
if (types == 0) if (types == 0)
{ {
types types
= sel_get_type(sel_get_any_typed_uid(GSNameFromSelector(aSelector))); = sel_get_type(sel_get_any_typed_uid(sel_getName(aSelector)));
} }
if (types == 0) if (types == 0)
{ {
NSLog(@"Couldn't find encoding type for selector %s.", NSLog(@"Couldn't find encoding type for selector %s.",
GSNameFromSelector(aSelector)); sel_getName(aSelector));
RELEASE(self); RELEASE(self);
return nil; return nil;
} }

View file

@ -218,7 +218,7 @@ static inline void setup()
- (Class) class - (Class) class
{ {
return GSObjCSuper(GSObjCClass(self)); return class_getSuperclass(object_getClass(self));
} }
- (void) setValue: (id)anObject forKey: (NSString*)aKey - (void) setValue: (id)anObject forKey: (NSString*)aKey
@ -299,7 +299,7 @@ static inline void setup()
- (Class) superclass - (Class) superclass
{ {
return GSObjCSuper(GSObjCSuper(GSObjCClass(self))); return class_getSuperclass(class_getSuperclass(object_getClass(self)));
} }
@end @end
@ -309,7 +309,7 @@ static inline void setup()
*/ */
static NSString *newKey(SEL _cmd) static NSString *newKey(SEL _cmd)
{ {
const char *name = GSNameFromSelector(_cmd); const char *name = sel_getName(_cmd);
unsigned len = strlen(name); unsigned len = strlen(name);
NSString *key; NSString *key;
unsigned i; unsigned i;

View file

@ -69,7 +69,7 @@ NSString *
NSStringFromSelector(SEL aSelector) NSStringFromSelector(SEL aSelector)
{ {
if (aSelector != (SEL)0) if (aSelector != (SEL)0)
return [NSString stringWithUTF8String: GSNameFromSelector(aSelector)]; return [NSString stringWithUTF8String: sel_getName(aSelector)];
return nil; return nil;
} }
@ -108,7 +108,7 @@ NSClassFromString(NSString *aClassName)
[aClassName getCString: buf [aClassName getCString: buf
maxLength: len + 1 maxLength: len + 1
encoding: NSASCIIStringEncoding]; encoding: NSASCIIStringEncoding];
return GSClassFromName (buf); return objc_lookUpClass (buf);
} }
return (Class)0; return (Class)0;
} }
@ -121,7 +121,7 @@ NSString *
NSStringFromClass(Class aClass) NSStringFromClass(Class aClass)
{ {
if (aClass != (Class)0) if (aClass != (Class)0)
return [NSString stringWithUTF8String: (char*)GSNameFromClass(aClass)]; return [NSString stringWithUTF8String: (char*)class_getName(aClass)];
return nil; return nil;
} }

View file

@ -570,7 +570,7 @@ NSAllocateObject(Class aClass, NSUInteger extraBytes, NSZone *zone)
{ {
new = NSZoneCalloc(zone, 1, size); new = NSZoneCalloc(zone, 1, size);
NSLog(@"No garbage collection information for '%s'", NSLog(@"No garbage collection information for '%s'",
GSNameFromClass(aClass)); class_getName(aClass));
} }
else else
{ {
@ -603,7 +603,7 @@ NSDeallocateObject(id anObject)
inline NSZone * inline NSZone *
GSObjCZone(NSObject *object) GSObjCZone(NSObject *object)
{ {
if (GSObjCClass(object) == NSConstantStringClass) if (object_getClass(object) == NSConstantStringClass)
return NSDefaultMallocZone(); return NSDefaultMallocZone();
return ((obj)object)[-1].zone; return ((obj)object)[-1].zone;
} }
@ -723,7 +723,7 @@ GSDescriptionForInstanceMethod(pcl self, SEL aSel)
{ {
int i; int i;
struct objc_protocol_list *p_list; struct objc_protocol_list *p_list;
const char *name = GSNameFromSelector(aSel); const char *name = sel_getName(aSel);
struct objc_method_description *result; struct objc_method_description *result;
if (self->instance_methods != 0) if (self->instance_methods != 0)
@ -754,7 +754,7 @@ GSDescriptionForClassMethod(pcl self, SEL aSel)
{ {
int i; int i;
struct objc_protocol_list *p_list; struct objc_protocol_list *p_list;
const char *name = GSNameFromSelector(aSel); const char *name = sel_getName(aSel);
struct objc_method_description *result; struct objc_method_description *result;
if (self->class_methods != 0) if (self->class_methods != 0)
@ -1299,7 +1299,7 @@ objc_create_block_classes_as_subclasses_of(Class super) __attribute__((weak));
*/ */
+ (Class) superclass + (Class) superclass
{ {
return GSObjCSuper(self); return class_getSuperclass(self);
} }
/** /**
@ -1307,7 +1307,7 @@ objc_create_block_classes_as_subclasses_of(Class super) __attribute__((weak));
*/ */
- (Class) superclass - (Class) superclass
{ {
return GSObjCSuper(GSObjCClass(self)); return class_getSuperclass(object_getClass(self));
} }
/** /**
@ -1407,12 +1407,12 @@ objc_create_block_classes_as_subclasses_of(Class super) __attribute__((weak));
[NSException raise: NSInvalidArgumentException [NSException raise: NSInvalidArgumentException
format: @"%@ null selector given", NSStringFromSelector(_cmd)]; format: @"%@ null selector given", NSStringFromSelector(_cmd)];
/* /*
* If 'self' is an instance, GSObjCClass() will get the class, * If 'self' is an instance, object_getClass() will get the class,
* and get_imp() will get the instance method. * and get_imp() will get the instance method.
* If 'self' is a class, GSObjCClass() will get the meta-class, * If 'self' is a class, object_getClass() will get the meta-class,
* and get_imp() will get the class method. * and get_imp() will get the class method.
*/ */
return get_imp(GSObjCClass(self), aSelector); return get_imp(object_getClass(self), aSelector);
} }
/** /**
@ -1452,7 +1452,7 @@ objc_create_block_classes_as_subclasses_of(Class super) __attribute__((weak));
format: @"%@ null selector given", NSStringFromSelector(_cmd)]; format: @"%@ null selector given", NSStringFromSelector(_cmd)];
selTypes = sel_get_type(aSelector); selTypes = sel_get_type(aSelector);
c = (GSObjCIsInstance(self) ? GSObjCClass(self) : (Class)self); c = (GSObjCIsInstance(self) ? object_getClass(self) : (Class)self);
mth = GSGetMethod(c, aSelector, GSObjCIsInstance(self), YES); mth = GSGetMethod(c, aSelector, GSObjCIsInstance(self), YES);
if (mth == 0) if (mth == 0)
@ -1525,7 +1525,7 @@ objc_create_block_classes_as_subclasses_of(Class super) __attribute__((weak));
- (NSString*) description - (NSString*) description
{ {
return [NSString stringWithFormat: @"<%s: %p>", return [NSString stringWithFormat: @"<%s: %p>",
GSNameFromClass([self class]), self]; class_getName([self class]), self];
} }
/** /**
@ -1560,7 +1560,7 @@ objc_create_block_classes_as_subclasses_of(Class super) __attribute__((weak));
format: @"%s(%s) does not recognize %s", format: @"%s(%s) does not recognize %s",
GSClassNameFromObject(self), GSClassNameFromObject(self),
GSObjCIsInstance(self) ? "instance" : "class", GSObjCIsInstance(self) ? "instance" : "class",
aSelector ? GSNameFromSelector(aSelector) : "(null)"]; aSelector ? sel_getName(aSelector) : "(null)"];
} }
- (retval_t) forward: (SEL)aSel : (arglist_t)argFrame - (retval_t) forward: (SEL)aSel : (arglist_t)argFrame
@ -1750,7 +1750,7 @@ objc_create_block_classes_as_subclasses_of(Class super) __attribute__((weak));
*/ */
- (BOOL) isKindOfClass: (Class)aClass - (BOOL) isKindOfClass: (Class)aClass
{ {
Class class = GSObjCClass(self); Class class = object_getClass(self);
return GSObjCIsKindOf(class, aClass); return GSObjCIsKindOf(class, aClass);
} }
@ -1768,7 +1768,7 @@ objc_create_block_classes_as_subclasses_of(Class super) __attribute__((weak));
*/ */
- (BOOL) isMemberOfClass: (Class)aClass - (BOOL) isMemberOfClass: (Class)aClass
{ {
return (GSObjCClass(self) == aClass) ? YES : NO; return (object_getClass(self) == aClass) ? YES : NO;
} }
/** /**
@ -1804,12 +1804,12 @@ objc_create_block_classes_as_subclasses_of(Class super) __attribute__((weak));
[NSException raise: NSInvalidArgumentException [NSException raise: NSInvalidArgumentException
format: @"%@ null selector given", NSStringFromSelector(_cmd)]; format: @"%@ null selector given", NSStringFromSelector(_cmd)];
msg = get_imp(GSObjCClass(self), aSelector); msg = get_imp(object_getClass(self), aSelector);
if (!msg) if (!msg)
{ {
[NSException raise: NSGenericException [NSException raise: NSGenericException
format: @"invalid selector passed to %s", format: @"invalid selector passed to %s",
GSNameFromSelector(_cmd)]; sel_getName(_cmd)];
return nil; return nil;
} }
return (*msg)(self, aSelector); return (*msg)(self, aSelector);
@ -1829,12 +1829,12 @@ objc_create_block_classes_as_subclasses_of(Class super) __attribute__((weak));
[NSException raise: NSInvalidArgumentException [NSException raise: NSInvalidArgumentException
format: @"%@ null selector given", NSStringFromSelector(_cmd)]; format: @"%@ null selector given", NSStringFromSelector(_cmd)];
msg = get_imp(GSObjCClass(self), aSelector); msg = get_imp(object_getClass(self), aSelector);
if (!msg) if (!msg)
{ {
[NSException raise: NSGenericException [NSException raise: NSGenericException
format: @"invalid selector passed to %s", format: @"invalid selector passed to %s",
GSNameFromSelector(_cmd)]; sel_getName(_cmd)];
return nil; return nil;
} }
@ -1857,11 +1857,11 @@ objc_create_block_classes_as_subclasses_of(Class super) __attribute__((weak));
[NSException raise: NSInvalidArgumentException [NSException raise: NSInvalidArgumentException
format: @"%@ null selector given", NSStringFromSelector(_cmd)]; format: @"%@ null selector given", NSStringFromSelector(_cmd)];
msg = get_imp(GSObjCClass(self), aSelector); msg = get_imp(object_getClass(self), aSelector);
if (!msg) if (!msg)
{ {
[NSException raise: NSGenericException [NSException raise: NSGenericException
format: @"invalid selector passed to %s", GSNameFromSelector(_cmd)]; format: @"invalid selector passed to %s", sel_getName(_cmd)];
return nil; return nil;
} }
@ -2165,7 +2165,7 @@ objc_create_block_classes_as_subclasses_of(Class super) __attribute__((weak));
format: @"%s(%s) does not recognize %s", format: @"%s(%s) does not recognize %s",
GSClassNameFromObject(self), GSClassNameFromObject(self),
GSObjCIsInstance(self) ? "instance" : "class", GSObjCIsInstance(self) ? "instance" : "class",
aSel ? GSNameFromSelector(aSel) : "(null)"]; aSel ? sel_getName(aSel) : "(null)"];
return nil; return nil;
} }
@ -2287,7 +2287,7 @@ objc_create_block_classes_as_subclasses_of(Class super) __attribute__((weak));
- (BOOL) isMemberOfClassNamed: (const char*)aClassName - (BOOL) isMemberOfClassNamed: (const char*)aClassName
{ {
return ((aClassName!=NULL) return ((aClassName!=NULL)
&&!strcmp(GSNameFromClass(GSObjCClass(self)), aClassName)); &&!strcmp(class_getName(object_getClass(self)), aClassName));
} }
+ (struct objc_method_description *) descriptionForInstanceMethod: (SEL)aSel + (struct objc_method_description *) descriptionForInstanceMethod: (SEL)aSel
@ -2308,7 +2308,7 @@ objc_create_block_classes_as_subclasses_of(Class super) __attribute__((weak));
return ((struct objc_method_description *) return ((struct objc_method_description *)
GSGetMethod((GSObjCIsInstance(self) GSGetMethod((GSObjCIsInstance(self)
? GSObjCClass(self) : (Class)self), ? object_getClass(self) : (Class)self),
aSel, aSel,
GSObjCIsInstance(self), GSObjCIsInstance(self),
YES)); YES));

View file

@ -597,8 +597,8 @@ static IMP _xRefImp; /* Serialize a crossref. */
if (c == 0) if (c == 0)
{ {
NSLog(@"[%s %s] decoded nil class", NSLog(@"[%s %s] decoded nil class",
GSNameFromClass([self class]), class_getName([self class]),
GSNameFromSelector(_cmd)); sel_getName(_cmd));
} }
obj = [c allocWithZone: _zone]; obj = [c allocWithZone: _zone];
GSIArrayAddItem(_objAry, (GSIArrayItem)obj); GSIArrayAddItem(_objAry, (GSIArrayItem)obj);
@ -712,7 +712,7 @@ static IMP _xRefImp; /* Serialize a crossref. */
if (c == 0) if (c == 0)
{ {
NSLog(@"[%s %s] decoded nil class", NSLog(@"[%s %s] decoded nil class",
GSNameFromClass([self class]), GSNameFromSelector(_cmd)); class_getName([self class]), sel_getName(_cmd));
} }
classInfo = [GSClassInfo newWithClass: c andVersion: cver]; classInfo = [GSClassInfo newWithClass: c andVersion: cver];
GSIArrayAddItem(_clsAry, (GSIArrayItem)((id)classInfo)); GSIArrayAddItem(_clsAry, (GSIArrayItem)((id)classInfo));
@ -1525,9 +1525,9 @@ static IMP _xRefImp; /* Serialize a crossref. */
} }
while (done == NO) while (done == NO)
{ {
int tmp = GSObjCVersion(c); int tmp = class_getVersion(c);
unsigned version = tmp; unsigned version = tmp;
Class s = GSObjCSuper(c); Class s = class_getSuperclass(c);
if (tmp < 0) if (tmp < 0)
{ {
@ -2045,7 +2045,7 @@ static IMP _xRefImp; /* Serialize a crossref. */
* use get_imp() because NSDistantObject doesn't implement * use get_imp() because NSDistantObject doesn't implement
* methodForSelector: * methodForSelector:
*/ */
proxyImp = get_imp(GSObjCClass((id)proxyClass), proxyImp = get_imp(object_getClass((id)proxyClass),
@selector(proxyWithLocal:connection:)); @selector(proxyWithLocal:connection:));
} }

View file

@ -2102,14 +2102,14 @@ OAppend(id obj, NSDictionary *loc, unsigned lev, unsigned step,
lastClass = NSStringClass; lastClass = NSStringClass;
for (i = 0; i < numKeys; i++) for (i = 0; i < numKeys; i++)
{ {
if (GSObjCClass(keys[i]) == lastClass) if (object_getClass(keys[i]) == lastClass)
continue; continue;
if ([keys[i] isKindOfClass: NSStringClass] == NO) if ([keys[i] isKindOfClass: NSStringClass] == NO)
{ {
canCompare = NO; canCompare = NO;
break; break;
} }
lastClass = GSObjCClass(keys[i]); lastClass = object_getClass(keys[i]);
} }
} }
@ -2149,7 +2149,7 @@ OAppend(id obj, NSDictionary *loc, unsigned lev, unsigned step,
Class x; Class x;
NSComparisonResult r; NSComparisonResult r;
x = GSObjCClass(a); x = object_getClass(a);
if (x != lastClass) if (x != lastClass)
{ {
lastClass = x; lastClass = x;
@ -2364,7 +2364,7 @@ GSPropertyListMake(id obj, NSDictionary *loc, BOOL xml,
{ {
*str = AUTORELEASE([GSMutableString new]); *str = AUTORELEASE([GSMutableString new]);
} }
else if (GSObjCClass(*str) != [GSMutableString class]) else if (object_getClass(*str) != [GSMutableString class])
{ {
[NSException raise: NSInvalidArgumentException [NSException raise: NSInvalidArgumentException
format: @"Illegal object (%@) at argument 0", *str]; format: @"Illegal object (%@) at argument 0", *str];

View file

@ -89,7 +89,7 @@
*/ */
if (GSObjCIsInstance(_myTarget)) if (GSObjCIsInstance(_myTarget))
{ {
if ((uintptr_t)GSObjCClass(_myProtocol) == 0x2) if ((uintptr_t)object_getClass(_myProtocol) == 0x2)
{ {
mth = GSDescriptionForInstanceMethod(_myProtocol, aSelector); mth = GSDescriptionForInstanceMethod(_myProtocol, aSelector);
} }
@ -100,7 +100,7 @@
} }
else else
{ {
if ((uintptr_t)GSObjCClass(_myProtocol) == 0x2) if ((uintptr_t)object_getClass(_myProtocol) == 0x2)
{ {
mth = GSDescriptionForClassMethod(_myProtocol, aSelector); mth = GSDescriptionForClassMethod(_myProtocol, aSelector);
} }
@ -196,7 +196,7 @@
* signature of methodSignatureForSelector:, so we hack in * signature of methodSignatureForSelector:, so we hack in
* the signature required manually :-( * the signature required manually :-(
*/ */
if (sel_eq(aSelector, _cmd)) if (sel_isEqual(aSelector, _cmd))
{ {
static NSMethodSignature *sig = nil; static NSMethodSignature *sig = nil;
@ -225,7 +225,7 @@
return [NSMethodSignature signatureWithObjCTypes: types]; return [NSMethodSignature signatureWithObjCTypes: types];
} }
c = GSObjCClass(self); c = object_getClass(self);
mth = GSGetMethod(c, aSelector, YES, YES); mth = GSGetMethod(c, aSelector, YES, YES);
if (mth == 0) if (mth == 0)
{ {

View file

@ -142,7 +142,7 @@ extern BOOL __objc_responds_to(id, SEL);
[NSException raise: NSInvalidArgumentException [NSException raise: NSInvalidArgumentException
format: @"%@ null selector given", NSStringFromSelector(_cmd)]; format: @"%@ null selector given", NSStringFromSelector(_cmd)];
return get_imp(GSObjCClass((id)self), aSelector); return get_imp(object_getClass((id)self), aSelector);
} }
/** /**
@ -209,7 +209,7 @@ extern BOOL __objc_responds_to(id, SEL);
*/ */
+ (Class) superclass + (Class) superclass
{ {
return GSObjCSuper(self); return class_getSuperclass(self);
} }
/** /**
@ -296,7 +296,7 @@ extern BOOL __objc_responds_to(id, SEL);
{ {
[NSException raise: NSInvalidArgumentException [NSException raise: NSInvalidArgumentException
format: @"NSProxy should not implement '%s'", format: @"NSProxy should not implement '%s'",
GSNameFromSelector(_cmd)]; sel_getName(_cmd)];
} }
/** /**
@ -321,7 +321,7 @@ extern BOOL __objc_responds_to(id, SEL);
{ {
[NSException raise: NSGenericException [NSException raise: NSGenericException
format: @"subclass %s should override %s", GSClassNameFromObject(self), format: @"subclass %s should override %s", GSClassNameFromObject(self),
GSNameFromSelector(_cmd)]; sel_getName(_cmd)];
return self; return self;
} }
@ -386,7 +386,7 @@ extern BOOL __objc_responds_to(id, SEL);
- (id) notImplemented: (SEL)aSel - (id) notImplemented: (SEL)aSel
{ {
[NSException raise: NSGenericException [NSException raise: NSGenericException
format: @"NSProxy notImplemented %s", GSNameFromSelector(aSel)]; format: @"NSProxy notImplemented %s", sel_getName(aSel)];
return self; return self;
} }
@ -402,7 +402,7 @@ extern BOOL __objc_responds_to(id, SEL);
{ {
return nil; return nil;
} }
mth = GSGetMethod(GSObjCClass(self), aSelector, YES, YES); mth = GSGetMethod(object_getClass(self), aSelector, YES, YES);
if (mth != 0) if (mth != 0)
{ {
const char *types = mth->method_types; const char *types = mth->method_types;
@ -425,7 +425,7 @@ extern BOOL __objc_responds_to(id, SEL);
{ {
[NSException raise: NSGenericException [NSException raise: NSGenericException
format: @"invalid selector passed to %s", format: @"invalid selector passed to %s",
GSNameFromSelector(_cmd)]; sel_getName(_cmd)];
return nil; return nil;
} }
return (*msg)(self, aSelector); return (*msg)(self, aSelector);
@ -440,7 +440,7 @@ extern BOOL __objc_responds_to(id, SEL);
{ {
[NSException raise: NSGenericException [NSException raise: NSGenericException
format: @"invalid selector passed to %s", format: @"invalid selector passed to %s",
GSNameFromSelector(_cmd)]; sel_getName(_cmd)];
return nil; return nil;
} }
return (*msg)(self, aSelector, anObject); return (*msg)(self, aSelector, anObject);
@ -456,7 +456,7 @@ extern BOOL __objc_responds_to(id, SEL);
{ {
[NSException raise: NSGenericException [NSException raise: NSGenericException
format: @"invalid selector passed to %s", format: @"invalid selector passed to %s",
GSNameFromSelector(_cmd)]; sel_getName(_cmd)];
return nil; return nil;
} }
return (*msg)(self, aSelector, anObject, anotherObject); return (*msg)(self, aSelector, anObject, anotherObject);
@ -496,7 +496,7 @@ extern BOOL __objc_responds_to(id, SEL);
* use get_imp() because NSDistantObject doesn't implement * use get_imp() because NSDistantObject doesn't implement
* methodForSelector: * methodForSelector:
*/ */
proxyImp = get_imp(GSObjCClass((id)proxyClass), proxyImp = get_imp(object_getClass((id)proxyClass),
@selector(proxyWithLocal:connection:)); @selector(proxyWithLocal:connection:));
} }

View file

@ -309,7 +309,7 @@ static inline BOOL timerInvalidated(NSTimer *t)
{ {
GSTimedPerformer *p = array[count]; GSTimedPerformer *p = array[count];
if (p->target == target && sel_eq(p->selector, aSelector) if (p->target == target && sel_isEqual(p->selector, aSelector)
&& (p->argument == arg || [p->argument isEqual: arg])) && (p->argument == arg || [p->argument isEqual: arg]))
{ {
[p invalidate]; [p invalidate];
@ -1384,7 +1384,7 @@ updateTimer(NSTimer *t, NSDate *d, NSTimeInterval now)
GSRunLoopPerformer *p; GSRunLoopPerformer *p;
p = GSIArrayItemAtIndex(performers, count).obj; p = GSIArrayItemAtIndex(performers, count).obj;
if (p->target == target && sel_eq(p->selector, aSelector) if (p->target == target && sel_isEqual(p->selector, aSelector)
&& (p->argument == argument || [p->argument isEqual: argument])) && (p->argument == argument || [p->argument isEqual: argument]))
{ {
GSIArrayRemoveItemAtIndex(performers, count); GSIArrayRemoveItemAtIndex(performers, count);

View file

@ -202,7 +202,7 @@ typedef GSString *ivars;
aString = @""; aString = @"";
} }
c = GSObjCClass(aString); c = object_getClass(aString);
if (GSObjCIsKindOf(c, GSUnicodeStringClass) == YES) if (GSObjCIsKindOf(c, GSUnicodeStringClass) == YES)
{ {
_isUnicode = YES; _isUnicode = YES;

View file

@ -146,7 +146,7 @@ initSerializerInfo(_NSSerializerInfo* info, NSMutableData *d, BOOL u)
{ {
Class c; Class c;
c = GSObjCClass(d); c = object_getClass(d);
info->data = d; info->data = d;
info->appImp = (void (*)(NSData*,SEL,const void*,unsigned))get_imp(c, appSel); info->appImp = (void (*)(NSData*,SEL,const void*,unsigned))get_imp(c, appSel);
info->datImp = (void* (*)(NSMutableData*,SEL))get_imp(c, datSel); info->datImp = (void* (*)(NSMutableData*,SEL))get_imp(c, datSel);
@ -180,7 +180,7 @@ serializeToInfo(id object, _NSSerializerInfo* info)
format: @"Class (%@) in property list - expected instance", format: @"Class (%@) in property list - expected instance",
[object description]]; [object description]];
} }
c = GSObjCClass(object); c = object_getClass(object);
if (GSObjCIsKindOf(c, StringClass) if (GSObjCIsKindOf(c, StringClass)
/* /*

View file

@ -210,7 +210,7 @@ static Class NSMutableSet_concrete_class;
{ {
Class c; Class c;
c = GSObjCClass(self); c = object_getClass(self);
if (c == NSSet_abstract_class) if (c == NSSet_abstract_class)
{ {
RELEASE(self); RELEASE(self);

View file

@ -83,7 +83,7 @@
- (unsigned) hash - (unsigned) hash
{ {
const char *sel = GSNameFromSelector(_selector); const char *sel = sel_getName(_selector);
return _ascending + GSPrivateHash(sel, strlen(sel), 16, YES) + [_key hash]; return _ascending + GSPrivateHash(sel, strlen(sel), 16, YES) + [_key hash];
} }
@ -136,7 +136,7 @@
{ {
return NO; return NO;
} }
if (!sel_eq(((NSSortDescriptor*)other)->_selector, _selector)) if (!sel_isEqual(((NSSortDescriptor*)other)->_selector, _selector))
{ {
return NO; return NO;
} }

View file

@ -1962,7 +1962,7 @@ handle_printf_atsign (FILE *stream,
} }
if (anObject != nil && GSObjCIsInstance(anObject) == YES) if (anObject != nil && GSObjCIsInstance(anObject) == YES)
{ {
Class c = GSObjCClass(anObject); Class c = object_getClass(anObject);
if (c != nil) if (c != nil)
{ {

View file

@ -744,7 +744,7 @@ static Class NSDataMallocClass;
if (className == 0) if (className == 0)
{ {
NSLog(@"[%s %s] decoded nil class name", NSLog(@"[%s %s] decoded nil class name",
GSNameFromClass([self class]), GSNameFromSelector(_cmd)); class_getName([self class]), sel_getName(_cmd));
className = @"_NSUnarchiverUnknownClass"; className = @"_NSUnarchiverUnknownClass";
} }
classInfo = [objDict objectForKey: className]; classInfo = [objDict objectForKey: className];
@ -1230,7 +1230,7 @@ static Class NSDataMallocClass;
{ {
Class c; Class c;
c = GSClassFromName([trueName cString]); c = objc_lookUpClass([trueName cString]);
if (c == 0) if (c == 0)
{ {
[NSException raise: NSInvalidArgumentException [NSException raise: NSInvalidArgumentException
@ -1282,7 +1282,7 @@ static Class NSDataMallocClass;
{ {
Class c; Class c;
c = GSClassFromName([trueName cString]); c = objc_lookUpClass([trueName cString]);
if (c == 0) if (c == 0)
{ {
[NSException raise: NSInvalidArgumentException [NSException raise: NSInvalidArgumentException
@ -1377,7 +1377,7 @@ static Class NSDataMallocClass;
TEST_RELEASE(data); TEST_RELEASE(data);
data = RETAIN(anObject); data = RETAIN(anObject);
c = GSObjCClass(data); c = object_getClass(data);
if (src != self) if (src != self)
{ {
src = data; src = data;