diff options
author | thomasvl@gmail.com <thomasvl@gmail.com@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3> | 2008-08-12 17:21:32 +0000 |
---|---|---|
committer | thomasvl@gmail.com <thomasvl@gmail.com@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3> | 2008-08-12 17:21:32 +0000 |
commit | 7063d76a007fbf636250d7199d6f24ec487163b1 (patch) | |
tree | 5a1f2f0a4b597f62df3e2fe858d76d37b22bbe89 /Foundation/GTMObjC2Runtime.h | |
parent | 43982f07ba6a0a9839e32e774855c9d2068e9d5e (diff) |
- Added GTMNSMakeUncollectable for forcing objects to survive in a GC world.
- Added GTMCFAutorelease to make the [GTMNSMakeCollectable(cfFoo) autorelease] simpler and clearer, it's now just GTMCFAutorelease(cfFoo), and works in both GC and non-GC world.
- Added GTMIsGarbageCollectionEnabled to GTMGarbageCollection.h. See the note there for it's usage.
- Disabled the unittests for things on top of NSAppleScript in a GC world since Apple has bugs and it can crash. See the unittest for a note about it.
- GTMStackTrace now can figure out ObjC symbols. Downside it is now ObjC only.
- GTMFourCharCode can now be used with NSAppleEventDescriptors easily. typeType, typeKeyword, typeApplSignature, and typeEnumerated all get turned into GTMFourCharCodes.
- Fixed up crash in GTMLoggerRingBufferWriter when used with GC on.
- Significant updates to GTMNSAppleScript+Handler allowing you to list all handlers and properties (including inherited) and cleans up several errors in how scripting was being handled.
Diffstat (limited to 'Foundation/GTMObjC2Runtime.h')
-rw-r--r-- | Foundation/GTMObjC2Runtime.h | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/Foundation/GTMObjC2Runtime.h b/Foundation/GTMObjC2Runtime.h index ab34cfb..f94e680 100644 --- a/Foundation/GTMObjC2Runtime.h +++ b/Foundation/GTMObjC2Runtime.h @@ -50,17 +50,25 @@ #if MAC_OS_X_VERSION_MIN_REQUIRED < 1050 #import "objc/Protocol.h" -Class object_getClass(id obj); -const char *class_getName(Class cls); -BOOL class_conformsToProtocol(Class cls, Protocol *protocol); -Class class_getSuperclass(Class cls); -Method *class_copyMethodList(Class cls, unsigned int *outCount); -SEL method_getName(Method m); -void method_exchangeImplementations(Method m1, Method m2); -IMP method_getImplementation(Method method); -IMP method_setImplementation(Method method, IMP imp); -struct objc_method_description protocol_getMethodDescription(Protocol *p, - SEL aSel, - BOOL isRequiredMethod, - BOOL isInstanceMethod); +#ifdef __cplusplus +extern "C" { +#endif + +OBJC_EXPORT Class object_getClass(id obj); +OBJC_EXPORT const char *class_getName(Class cls); +OBJC_EXPORT BOOL class_conformsToProtocol(Class cls, Protocol *protocol); +OBJC_EXPORT Class class_getSuperclass(Class cls); +OBJC_EXPORT Method *class_copyMethodList(Class cls, unsigned int *outCount); +OBJC_EXPORT SEL method_getName(Method m); +OBJC_EXPORT void method_exchangeImplementations(Method m1, Method m2); +OBJC_EXPORT IMP method_getImplementation(Method method); +OBJC_EXPORT IMP method_setImplementation(Method method, IMP imp); +OBJC_EXPORT struct objc_method_description protocol_getMethodDescription(Protocol *p, + SEL aSel, + BOOL isRequiredMethod, + BOOL isInstanceMethod); +#ifdef __cplusplus +} +#endif + #endif // OBJC2_UNAVAILABLE |