On 06/07/2013 10:10 PM, David Chisnall wrote:
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


It seems to have helped. Thanks!

--
Luboš Doležel

_______________________________________________
Gnustep-dev mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/gnustep-dev

Reply via email to