@@ -30,10 +30,13 @@ # include typedef pthread_key_t of_tlskey_t; #elif defined(OF_WINDOWS) # include typedef DWORD of_tlskey_t; +#elif defined(OF_MORPHOS) +# include +typedef ULONG of_tlskey_t; #elif defined(OF_AMIGAOS) typedef struct of_tlskey { struct objc_hashtable *table; struct of_tlskey *next, *previous; } *of_tlskey_t; @@ -72,10 +75,22 @@ static OF_INLINE bool of_tlskey_set(of_tlskey_t key, void *ptr) { return TlsSetValue(key, ptr); } +#elif defined(OF_MORPHOS) +static OF_INLINE void * +of_tlskey_get(of_tlskey_t key) +{ + return (void *)TLSGetValue(key); +} + +static OF_INLINE bool +of_tlskey_set(of_tlskey_t key, void *ptr) +{ + return TLSSetValue(key, (APTR)ptr); +} #elif defined(OF_AMIGAOS) /* Those are too big too inline. */ # ifdef __cplusplus extern "C" { # endif