diff options
Diffstat (limited to 'deps/v8/src/heap/scavenger.cc')
-rw-r--r-- | deps/v8/src/heap/scavenger.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/deps/v8/src/heap/scavenger.cc b/deps/v8/src/heap/scavenger.cc index 9eb1677180..a5c8a41ea5 100644 --- a/deps/v8/src/heap/scavenger.cc +++ b/deps/v8/src/heap/scavenger.cc @@ -410,7 +410,13 @@ void ScavengerCollector::CollectGarbage() { MemoryChunk* chunk; while (empty_chunks.Pop(kMainThreadId, &chunk)) { - RememberedSet<OLD_TO_NEW>::CheckPossiblyEmptyBuckets(chunk); + // Since sweeping was already restarted only check chunks that already got + // swept. + if (chunk->SweepingDone()) { + RememberedSet<OLD_TO_NEW>::CheckPossiblyEmptyBuckets(chunk); + } else { + chunk->possibly_empty_buckets()->Release(); + } } #ifdef DEBUG |