I am expecting a solution that works on both OS X and GNUstep. 发自我的 iPhone
在 2013-6-9,1:28,David Chisnall <[email protected]> 写道: > No. See the email you replied to for why not. > > David > > On 8 Jun 2013, at 18:20, Maxthon Chan <[email protected]> wrote: > >> So I can safely do this? (Macro rewritten as inline function) >> >> static inline __attribute__((always_inline)) BOOL objc_isSmallObject(id obj) >> { >> return (((intptr_t)obj) & 1) ? YES : NO; >> } >> >> 在 2013-6-8,上午4:10,David Chisnall <[email protected]> 写道: >> >>> On 7 Jun 2013, at 16:29, Luboš Doležel <[email protected]> wrote: >>> >>>> for toll-free bridging in CoreBase, I need a way to detect whether the >>>> incoming pointer is a small object encoded in a pointer and act >>>> accordingly (treat it as an ObjC object and avoid reading it). >>> >>> In objc/runtime.h, there is a constant SMALL_OBJECT_MASK. If ptr & >>> SMALL_OBJECT_MASK == 0, then the pointer is not a small object. >>> >>> On 32-bit platforms, the low bit of the pointer will be 0. On 64-bit >>> platforms, the low 3 bits will always be zero. >>> >>> David >>> >>> >>> _______________________________________________ >>> Gnustep-dev mailing list >>> [email protected] >>> https://lists.gnu.org/mailman/listinfo/gnustep-dev >> >> >> _______________________________________________ >> Gnustep-dev mailing list >> [email protected] >> https://lists.gnu.org/mailman/listinfo/gnustep-dev > > > > -- > This email complies with ISO 3103 > _______________________________________________ Gnustep-dev mailing list [email protected] https://lists.gnu.org/mailman/listinfo/gnustep-dev
