Index: src/heap/incremental-marking.cc |
diff --git a/src/heap/incremental-marking.cc b/src/heap/incremental-marking.cc |
index c4a037d0bcbb6d96010b13bbb45fa24297323d9d..e01c50b849a0bb99053fa4f0b57f635280ae755c 100644 |
--- a/src/heap/incremental-marking.cc |
+++ b/src/heap/incremental-marking.cc |
@@ -302,6 +302,10 @@ |
chunk->size() > static_cast<size_t>(Page::kPageSize) && is_compacting) { |
chunk->SetFlag(MemoryChunk::RESCAN_ON_EVACUATION); |
} |
+ } else if (chunk->owner()->identity() == CELL_SPACE || |
+ chunk->scan_on_scavenge()) { |
+ chunk->ClearFlag(MemoryChunk::POINTERS_TO_HERE_ARE_INTERESTING); |
+ chunk->ClearFlag(MemoryChunk::POINTERS_FROM_HERE_ARE_INTERESTING); |
} else { |
chunk->ClearFlag(MemoryChunk::POINTERS_TO_HERE_ARE_INTERESTING); |
chunk->SetFlag(MemoryChunk::POINTERS_FROM_HERE_ARE_INTERESTING); |
@@ -343,6 +347,7 @@ |
void IncrementalMarking::DeactivateIncrementalWriteBarrier() { |
DeactivateIncrementalWriteBarrierForSpace(heap_->old_space()); |
+ DeactivateIncrementalWriteBarrierForSpace(heap_->cell_space()); |
DeactivateIncrementalWriteBarrierForSpace(heap_->map_space()); |
DeactivateIncrementalWriteBarrierForSpace(heap_->code_space()); |
DeactivateIncrementalWriteBarrierForSpace(heap_->new_space()); |
@@ -375,6 +380,7 @@ |
void IncrementalMarking::ActivateIncrementalWriteBarrier() { |
ActivateIncrementalWriteBarrier(heap_->old_space()); |
+ ActivateIncrementalWriteBarrier(heap_->cell_space()); |
ActivateIncrementalWriteBarrier(heap_->map_space()); |
ActivateIncrementalWriteBarrier(heap_->code_space()); |
ActivateIncrementalWriteBarrier(heap_->new_space()); |