Index: src/heap.cc |
diff --git a/src/heap.cc b/src/heap.cc |
index 401f4f7948adc09cb845390ef7f37036fa179aee..f294c28be1c36efed256249f92c9ac7d2e0c0c57 100644 |
--- a/src/heap.cc |
+++ b/src/heap.cc |
@@ -1273,7 +1273,8 @@ void Heap::Scavenge() { |
incremental_marking()->PrepareForScavenge(); |
- AdvanceSweepers(static_cast<int>(new_space_.Size())); |
+ paged_space(OLD_DATA_SPACE)->EnsureSweeperProgress(new_space_.Size()); |
+ paged_space(OLD_POINTER_SPACE)->EnsureSweeperProgress(new_space_.Size()); |
// Flip the semispaces. After flipping, to space is empty, from space has |
// live objects. |
@@ -5372,9 +5373,9 @@ bool Heap::IdleNotification(int hint) { |
// 3. many lazy sweep steps. |
// Use mark-sweep-compact events to count incremental GCs in a round. |
- |
if (incremental_marking()->IsStopped()) { |
- if (!IsSweepingComplete() && |
+ if (!mark_compact_collector()->AreSweeperThreadsActivated() && |
+ !IsSweepingComplete() && |
!AdvanceSweepers(static_cast<int>(step_size))) { |
return false; |
} |