ObjFW  Diff

Differences From Artifact [bd61ad8aad]:

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
211

212
213
214
215
216
217
218
219
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 IMP (*objc_forward_handler)(id, SEL);
extern void objc_setForwardHandler(void*, void*);
extern IMP (*objc_forward_handler_stret)(id, SEL);
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);