Index: src/mark-compact.cc |
=================================================================== |
--- src/mark-compact.cc (revision 10174) |
+++ src/mark-compact.cc (working copy) |
@@ -2081,6 +2081,22 @@ |
PrepareForCodeFlushing(); |
+ // There is no write barrier on cells so we have to scan them now at the end |
+ // of the incremental sweeping. |
Vyacheslav Egorov (Chromium)
2011/12/06 15:28:15
at the end of incremental marking
|
+ { |
Vyacheslav Egorov (Chromium)
2011/12/06 15:28:15
Please check that we actually _had_ incremental ma
|
+ HeapObjectIterator cell_iterator(heap()->cell_space()); |
+ HeapObject* cell; |
+ while ((cell = cell_iterator.Next()) != NULL) { |
+ ASSERT(cell->IsJSGlobalPropertyCell()); |
+ if (IsMarked(cell)) { |
+ int offset = JSGlobalPropertyCell::kValueOffset; |
+ StaticMarkingVisitor::VisitPointer( |
+ heap(), |
+ reinterpret_cast<Object**>(cell->address() + offset)); |
+ } |
+ } |
+ } |
+ |
RootMarkingVisitor root_visitor(heap()); |
MarkRoots(&root_visitor); |