On 7 Jun 2013, at 16:29, Luboš Doležel <address@hidden> 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