Revision: 9460
Author: [email protected]
Date: Wed Sep 28 03:45:27 2011
Log: EvacuateNewSpaceAndCandidates should explicitly skip dead large
objects.
LargeObjectSpace is swept at the very end of SweepSpaces.
[email protected]
BUG=v8:1736
Review URL: http://codereview.chromium.org/8060013
http://code.google.com/p/v8/source/detail?r=9460
Modified:
/branches/bleeding_edge/src/mark-compact.cc
=======================================
--- /branches/bleeding_edge/src/mark-compact.cc Tue Sep 27 06:35:04 2011
+++ /branches/bleeding_edge/src/mark-compact.cc Wed Sep 28 03:45:27 2011
@@ -3035,6 +3035,10 @@
// It's difficult to filter out slots recorded for large objects.
LargeObjectIterator it(heap_->lo_space());
for (HeapObject* obj = it.Next(); obj != NULL; obj = it.Next()) {
+ // LargeObjectSpace is not swept yet thus we have to skip
+ // dead objects explicitly.
+ if (!IsMarked(obj)) continue;
+
Page* p = Page::FromAddress(obj->address());
if (p->IsFlagSet(Page::RESCAN_ON_EVACUATION)) {
obj->Iterate(&updating_visitor);
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev