I think I've addressed Vitaly's comments, it is ready for another look.
1. The heap pointer is now sharing the field with scavenge callback pointer
in
meta map (since meta map always has it NULL). So there is no special meta
map
layout and no increase in map size. The special
has_heap_in_scavenger_field()
check is used for ASSERTS.
2. Run tests and figured out all cases where GC codepath was trying to get
heap
out of map. Indeed, there was not many places like that (thanks to oddball
patch
too!) so I've added just enough heap pointer passing to make the GC avoid
the
HeapObject::GetHeap() call. Assert in GetHeap() prevents incorrect usage.
http://codereview.chromium.org/3089005/show
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev