aboutsummaryrefslogtreecommitdiff
path: root/Foundation/GTMObjC2Runtime.h
diff options
context:
space:
mode:
authorGravatar thomasvl@gmail.com <thomasvl@gmail.com@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2008-08-12 17:21:32 +0000
committerGravatar thomasvl@gmail.com <thomasvl@gmail.com@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2008-08-12 17:21:32 +0000
commit7063d76a007fbf636250d7199d6f24ec487163b1 (patch)
tree5a1f2f0a4b597f62df3e2fe858d76d37b22bbe89 /Foundation/GTMObjC2Runtime.h
parent43982f07ba6a0a9839e32e774855c9d2068e9d5e (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.h34
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