@@ -26,10 +26,11 @@ struct ObjFWRTBase; #import "inline.h" +#include #include #include #if defined(OF_AMIGAOS_M68K) # include @@ -60,13 +61,23 @@ #endif #ifdef OF_AMIGAOS_M68K extern void __register_frame_info(const void *, void *); extern void *__deregister_frame_info(const void *); #endif +#ifdef OF_MORPHOS +extern void __register_frame(void *); +extern void __deregister_frame(void *); +#endif struct Library *ObjFWRTBase; void *__objc_class_name_Protocol; + +static int * +get_errno(void) +{ + return &errno; +} static void __attribute__((__used__)) ctor(void) { static bool initialized = false; @@ -100,10 +111,15 @@ #endif #ifdef OF_AMIGAOS_M68K .__register_frame_info = __register_frame_info, .__deregister_frame_info = __deregister_frame_info, #endif +#ifdef OF_MORPHOS + .__register_frame = __register_frame, + .__deregister_frame = __deregister_frame, +#endif + .get_errno = get_errno, }; if (initialized) return; @@ -740,16 +756,10 @@ object_isTaggedPointer(id object) { return glue_object_isTaggedPointer(object); } -Class -object_getTaggedPointerClass(id object) -{ - return glue_object_getTaggedPointerClass(object); -} - uintptr_t object_getTaggedPointerValue(id object) { return glue_object_getTaggedPointerValue(object); }