Index: src/heap/remembered-set.h |
diff --git a/src/heap/remembered-set.h b/src/heap/remembered-set.h |
index bdfae032acf36c5aff4f6950218f226dea8ff9fe..75aa524cde4cb722da3d8321e0a454dd93f7247a 100644 |
--- a/src/heap/remembered-set.h |
+++ b/src/heap/remembered-set.h |
@@ -149,10 +149,13 @@ class RememberedSet { |
static void RemoveRangeTyped(MemoryChunk* page, Address start, Address end) { |
TypedSlotSet* slots = GetTypedSlotSet(page); |
if (slots != nullptr) { |
- slots->Iterate([start, end](SlotType slot_type, Address host_addr, |
- Address slot_addr) { |
- return start <= slot_addr && slot_addr < end ? REMOVE_SLOT : KEEP_SLOT; |
- }); |
+ slots->Iterate( |
+ [start, end](SlotType slot_type, Address host_addr, |
+ Address slot_addr) { |
+ return start <= slot_addr && slot_addr < end ? REMOVE_SLOT |
+ : KEEP_SLOT; |
+ }, |
+ TypedSlotSet::PREFREE_EMPTY_CHUNKS); |
} |
} |
@@ -173,7 +176,7 @@ class RememberedSet { |
static void IterateTyped(MemoryChunk* chunk, Callback callback) { |
TypedSlotSet* slots = GetTypedSlotSet(chunk); |
if (slots != nullptr) { |
- int new_count = slots->Iterate(callback); |
+ int new_count = slots->Iterate(callback, TypedSlotSet::KEEP_EMPTY_CHUNKS); |
if (new_count == 0) { |
ReleaseTypedSlotSet(chunk); |
} |