>
> 2. Why cast to Object**?
>

Our objects typically contain several pointers to other objects, so 
FIELD_ADDR points into one object, and that location contains a pointer to 
the other object => Object**. The layout of the objects is described (well, 
actually obscured ;-) in objects.h via tons of constants.

Q: Are there any differences between (**reinterpret_cast*<Object****>(
FIELD_ADDR(p, offset))) and (*reinterpret_cast*<Object***>(FIELD_ADDR(p, 
offset))) ?


Thank you.


On Wednesday, November 13, 2013 4:49:43 PM UTC+9, Sven Panne wrote:
>
> On Wed, Nov 13, 2013 at 6:17 AM, Steve Jonghee Yun 
> <[email protected]<javascript:>
> > wrote:
>
>> [...] 1. Why does subtract kHeapObjectTag in FIELD_ADDR() ?
>>
>
> We use a tagged representation to distinguish pointers and integral 
> values, so all our pointers are off by 1 and the integers are scaled by a 
> factor of 2 (see e.g. 
> http://wingolog.org/archives/2011/05/18/value-representation-in-javascript-implementations
> ).
>  
>
>> 2. Why cast to Object**?
>>
>
> Our objects typically contain several pointers to other objects, so 
> FIELD_ADDR points into one object, and that location contains a pointer to 
> the other object => Object**. The layout of the objects is described (well, 
> actually obscured ;-) in objects.h via tons of constants.
>  

-- 
-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to