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