On 2015/09/01 09:01:36, Michael Lippautz wrote:

https://codereview.chromium.org/1316873004/diff/140001/src/heap/mark-compact.cc
File src/heap/mark-compact.cc (right):


https://codereview.chromium.org/1316873004/diff/140001/src/heap/mark-compact.cc#newcode4436
src/heap/mark-compact.cc:4436: // NOTE: ArrayBuffers must be evacuated first,
before freeing them. Otherwise
On 2015/09/01 08:50:08, fedor.indutny wrote:
> On 2015/09/01 08:30:06, Michael Lippautz wrote:
> > Can you elaborate on this comment a bit more. Why are the not yet
discovered?
> We
> > should've computed a transitive closure, marking ALL live objects,
icluding
> new
> > space ones. This would move them into the live map of buffers.
>
> I might not be understanding this correctly, but we are not really visiting
the
> new space objects until we are doing the Sweep phase. So we do erase ptrs in
the
> `not_yet_discovered` only on `EvacuateNewSpaceAndCandidates` call.
>
> The marking phase do not register them, because it is backed by
> `StaticMarkingVisitor`, and only `StaticNewSpaceVisitor` is capable of
> registering.

StaticMarkingVisitor is also registering live arrays and should do the right thing. Mind investigating the root problem? It would be good to maintain the
invariant that we can free the dead buffers anywhere after marking.

Argh, you are right. Looking into it.

https://codereview.chromium.org/1316873004/

--
--
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to