Index: src/heap/heap.cc |
diff --git a/src/heap/heap.cc b/src/heap/heap.cc |
index a7dfb80e5ac3a0face4bcf92b02c8a861a4cffff..06aa13d2c421098c10b77dabcd6dea6ad9bf79ba 100644 |
--- a/src/heap/heap.cc |
+++ b/src/heap/heap.cc |
@@ -5108,7 +5108,7 @@ void Heap::IterateStrongRoots(RootVisitor* v, VisitMode mode) { |
// Iterate over the builtin code objects and code stubs in the |
// heap. Note that it is not necessary to iterate over code objects |
// on scavenge collections. |
- if (mode != VISIT_ALL_IN_SCAVENGE) { |
+ if (mode != VISIT_ALL_IN_SCAVENGE && mode != VISIT_ALL_IN_MINOR_MC_UPDATE) { |
isolate_->builtins()->IterateBuiltins(v); |
v->Synchronize(VisitorSynchronization::kBuiltins); |
isolate_->interpreter()->IterateDispatchTable(v); |
@@ -5128,6 +5128,9 @@ void Heap::IterateStrongRoots(RootVisitor* v, VisitMode mode) { |
case VISIT_ALL_IN_SCAVENGE: |
isolate_->global_handles()->IterateNewSpaceStrongAndDependentRoots(v); |
break; |
+ case VISIT_ALL_IN_MINOR_MC_UPDATE: |
+ isolate_->global_handles()->IterateAllNewSpaceRoots(v); |
+ break; |
case VISIT_ALL_IN_SWEEP_NEWSPACE: |
case VISIT_ALL: |
isolate_->global_handles()->IterateAllRoots(v); |
@@ -5136,7 +5139,7 @@ void Heap::IterateStrongRoots(RootVisitor* v, VisitMode mode) { |
v->Synchronize(VisitorSynchronization::kGlobalHandles); |
// Iterate over eternal handles. |
- if (mode == VISIT_ALL_IN_SCAVENGE) { |
+ if (mode == VISIT_ALL_IN_SCAVENGE || mode == VISIT_ALL_IN_MINOR_MC_UPDATE) { |
isolate_->eternal_handles()->IterateNewSpaceRoots(v); |
} else { |
isolate_->eternal_handles()->IterateAllRoots(v); |