Index: src/heap.cc |
diff --git a/src/heap.cc b/src/heap.cc |
index 1916b6442660eb8f11a96d402b46dbe5d79cd660..8d398ec3bcd985da9a0d4600566133fc9765ce25 100644 |
--- a/src/heap.cc |
+++ b/src/heap.cc |
@@ -1308,7 +1308,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. |
@@ -5420,9 +5421,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; |
} |