Index: src/heap/heap.cc |
diff --git a/src/heap/heap.cc b/src/heap/heap.cc |
index bc8bfe3215383fa4a03a6664286dcd51bef0ec00..3c8b876bf5d1e5b529001a985fe5ecabfdd92085 100644 |
--- a/src/heap/heap.cc |
+++ b/src/heap/heap.cc |
@@ -1626,8 +1626,6 @@ void Heap::Scavenge() { |
scavenge_collector_->SelectScavengingVisitorsTable(); |
- array_buffer_tracker()->PrepareDiscoveryInNewSpace(); |
- |
// Flip the semispaces. After flipping, to space is empty, from space has |
// live objects. |
new_space_.Flip(); |
@@ -1744,7 +1742,7 @@ void Heap::Scavenge() { |
// Set age mark. |
new_space_.set_age_mark(new_space_.top()); |
- array_buffer_tracker()->FreeDead(true); |
+ array_buffer_tracker()->FreeDeadInNewSpace(); |
// Update how much has survived scavenge. |
IncrementYoungSurvivorsCounter(static_cast<int>( |
@@ -2024,7 +2022,8 @@ HeapObject* Heap::DoubleAlignForDeserialization(HeapObject* object, int size) { |
void Heap::RegisterNewArrayBuffer(JSArrayBuffer* buffer) { |
- return array_buffer_tracker()->RegisterNew(buffer); |
+ const bool track_live = Marking::IsBlack(Marking::MarkBitFrom(buffer)); |
+ return array_buffer_tracker()->RegisterNew(buffer, track_live); |
} |