Differences From Artifact [bd61ad8aad]:
- File src/runtime/runtime.h — part of check-in [2dec88a9d5] at 2013-12-20 00:14:15 on branch trunk — runtime: More consistency in the API. (user: js, size: 5711) [annotate] [blame] [check-ins using]
To Artifact [86f17c06b0]:
- File
src/runtime/runtime.h
— part of check-in
[0c332aa2d2]
at
2013-12-27 02:07:14
on branch trunk
— Rework forwarding API and ABI.
It matches the Apple API and ABI now and the forwarding handler itself
determines whether it should forward or not.This moves handling of +[resolve{Class,Instance}Method:] to the runtime
and allows adding new kinds of forwarding without changing the runtime.Also fixes a potential stack problem in the forwarding for MIPS. (user: js, size: 5665) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
204 205 206 207 208 209 210 | extern const char* object_getClassName(id); extern const char* protocol_getName(Protocol*); extern bool protocol_isEqual(Protocol*, Protocol*); extern bool protocol_conformsToProtocol(Protocol*, Protocol*); extern void objc_exit(void); extern objc_uncaught_exception_handler objc_setUncaughtExceptionHandler( objc_uncaught_exception_handler); | | < | 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 | extern const char* object_getClassName(id); extern const char* protocol_getName(Protocol*); extern bool protocol_isEqual(Protocol*, Protocol*); extern bool protocol_conformsToProtocol(Protocol*, Protocol*); extern void objc_exit(void); extern objc_uncaught_exception_handler objc_setUncaughtExceptionHandler( objc_uncaught_exception_handler); extern void objc_setForwardHandler(void*, void*); extern id objc_autorelease(id); extern void* objc_autoreleasePoolPush(void); extern void objc_autoreleasePoolPop(void*); extern id _objc_rootAutorelease(id); /* Used by the compiler, but can be called manually. */ extern IMP objc_msg_lookup(id, SEL); extern IMP objc_msg_lookup_stret(id, SEL); |
︙ | ︙ |