| Index: src/heap.cc
|
| diff --git a/src/heap.cc b/src/heap.cc
|
| index c394a2c60b7a4177e43691c211826112118fe8b0..b3b2df9148fde8a0719bd91d3f214f1bd71d464e 100644
|
| --- a/src/heap.cc
|
| +++ b/src/heap.cc
|
| @@ -615,7 +615,7 @@ bool Heap::CollectGarbage(AllocationSpace space,
|
| }
|
|
|
| if (collector == MARK_COMPACTOR &&
|
| - !mark_compact_collector()->abort_incremental_marking_ &&
|
| + !mark_compact_collector()->abort_incremental_marking() &&
|
| !incremental_marking()->IsStopped() &&
|
| !incremental_marking()->should_hurry() &&
|
| FLAG_incremental_marking_steps) {
|
| @@ -657,10 +657,13 @@ bool Heap::CollectGarbage(AllocationSpace space,
|
| GarbageCollectionEpilogue();
|
| }
|
|
|
| - if (incremental_marking()->IsStopped()) {
|
| - if (incremental_marking()->WorthActivating() && NextGCIsLikelyToBeFull()) {
|
| - incremental_marking()->Start();
|
| - }
|
| + // Start incremental marking for the next cycle. The heap snapshot
|
| + // generator needs incremental marking to stay off after it aborted.
|
| + if (!mark_compact_collector()->abort_incremental_marking() &&
|
| + incremental_marking()->IsStopped() &&
|
| + incremental_marking()->WorthActivating() &&
|
| + NextGCIsLikelyToBeFull()) {
|
| + incremental_marking()->Start();
|
| }
|
|
|
| return next_gc_likely_to_collect_more;
|
|
|