gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to correctly determine a small object?


From: David Chisnall
Subject: Re: How to correctly determine a small object?
Date: Sat, 8 Jun 2013 18:28:34 +0100

No.  See the email you replied to for why not.

David

On 8 Jun 2013, at 18:20, Maxthon Chan <address@hidden> 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 <address@hidden> 写道:
> 
>> 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
>> 
>> 
>> _______________________________________________
>> Gnustep-dev mailing list
>> address@hidden
>> https://lists.gnu.org/mailman/listinfo/gnustep-dev
> 
> 
> _______________________________________________
> Gnustep-dev mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/gnustep-dev



--
This email complies with ISO 3103




reply via email to

[Prev in Thread] Current Thread [Next in Thread]