@@ -59,10 +59,15 @@ #ifdef OF_BIG_ENDIAN # define OF_ENDIANESS_NATIVE OF_ENDIANESS_BIG_ENDIAN #else # define OF_ENDIANESS_NATIVE OF_ENDIANESS_LITTLE_ENDIAN #endif + +/* Hopefully no arch needs more than 16 bytes padding */ +#ifndef __BIGGEST_ALIGNMENT__ +# define __BIGGEST_ALIGNMENT__ 16 +#endif #ifdef __GNUC__ # if defined(__amd64__) || defined(__x86_64__) # define OF_AMD64_ASM # elif defined(__i386__) @@ -82,10 +87,13 @@ # define OF_PATH_DELIMITER '/' #else # define OF_PATH_DELIMITER '\\' #endif +extern id objc_getProperty(id, SEL, ptrdiff_t, BOOL); +extern void objc_setProperty(id, SEL, ptrdiff_t, id, BOOL, signed char); + #define OF_IVAR_OFFSET(ivar) ((intptr_t)&ivar - (intptr_t)self) #define OF_GETTER(ivar, atomic) \ return objc_getProperty(self, _cmd, OF_IVAR_OFFSET(ivar), atomic); #define OF_SETTER(ivar, value, atomic, copy) \ objc_setProperty(self, _cmd, OF_IVAR_OFFSET(ivar), value, atomic, copy);