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: Chan Maxthon
Subject: Re: How to correctly determine a small object?
Date: Sun, 09 Jun 2013 03:55:52 +0800

I am expecting a solution that works on both OS X and GNUstep.

发自我的 iPhone

在 2013-6-9,1:28,David Chisnall <address@hidden> 写道:

> 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]