Yes.  Context is roughly an array of pointers to other v8 object.  GC
is smart enough to update all the pointers when objects are moved.

yours,
anton.

On Thu, Jun 17, 2010 at 8:52 PM, Matt Seegmiller <[email protected]> wrote:
> A follow-up question then:
>
> I notice that, for example, a v8::internal::Context has in its memory
> block a pointer to a v8::internal::GlobalObject (it can be accessed
> from v8::internal::Context::global()).  This appears to be a direct
> pointer, not a handle.  If the GlobalObject is moved, is the GC
> changing this piece of memory in the Context?
>
> Thanks,
>
> matt
>
> On Thu, Jun 17, 2010 at 12:49 PM, Anton Muhin <[email protected]> wrote:
>> Yes.  That's exactly the reason why handles are needed.
>>
>> V8 does two moving GCs: scavenge and mark-compact.
>>
>> yours,
>> anton.
>>
>> On Thu, Jun 17, 2010 at 8:28 PM, Matt Seegmiller <[email protected]> wrote:
>>> Am I correct in assuming that the V8 memory allocation and garbage
>>> collection is using movable memory?  So, for example, if I have a
>>> handle to a Context and in the course of debugging I dereference down
>>> and get the address of the v8::internal::Context it points at, at a
>>> later point in time, is it possible that if I do the same dereference
>>> I could get a different address for the same v8::internal::Context?
>>>
>>> Thanks,
>>>
>>> matt
>>>
>>> --
>>> v8-users mailing list
>>> [email protected]
>>> http://groups.google.com/group/v8-users
>>>
>>
>> --
>> v8-users mailing list
>> [email protected]
>> http://groups.google.com/group/v8-users
>
> --
> v8-users mailing list
> [email protected]
> http://groups.google.com/group/v8-users
>

-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users

Reply via email to