summaryrefslogtreecommitdiff
path: root/deps/v8/src/heap/scavenger.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/heap/scavenger.cc')
-rw-r--r--deps/v8/src/heap/scavenger.cc8
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