Index: src/heap/spaces.cc |
diff --git a/src/heap/spaces.cc b/src/heap/spaces.cc |
index 8982a2953273abbe35993b57ab63ee43d42ae0d7..1149dc51c367803c904b6c6ed5b0c0ba5dd6f401 100644 |
--- a/src/heap/spaces.cc |
+++ b/src/heap/spaces.cc |
@@ -510,7 +510,7 @@ MemoryChunk* MemoryChunk::Initialize(Heap* heap, Address base, size_t size, |
chunk->InitializeReservedMemory(); |
chunk->old_to_new_slots_ = nullptr; |
chunk->old_to_old_slots_ = nullptr; |
- chunk->typed_old_to_new_slots_ = nullptr; |
+ chunk->typed_old_to_new_slots_.SetValue(nullptr); |
chunk->typed_old_to_old_slots_ = nullptr; |
chunk->skip_list_ = nullptr; |
chunk->write_barrier_counter_ = kWriteBarrierCounterGranularity; |
@@ -1077,7 +1077,7 @@ void MemoryChunk::ReleaseAllocatedMemory() { |
} |
if (old_to_new_slots_ != nullptr) ReleaseOldToNewSlots(); |
if (old_to_old_slots_ != nullptr) ReleaseOldToOldSlots(); |
- if (typed_old_to_new_slots_ != nullptr) ReleaseTypedOldToNewSlots(); |
+ if (typed_old_to_new_slots_.Value() != nullptr) ReleaseTypedOldToNewSlots(); |
if (typed_old_to_old_slots_ != nullptr) ReleaseTypedOldToOldSlots(); |
if (local_tracker_ != nullptr) ReleaseLocalTracker(); |
} |
@@ -1113,13 +1113,14 @@ void MemoryChunk::ReleaseOldToOldSlots() { |
} |
void MemoryChunk::AllocateTypedOldToNewSlots() { |
- DCHECK(nullptr == typed_old_to_new_slots_); |
- typed_old_to_new_slots_ = new TypedSlotSet(address()); |
+ DCHECK(nullptr == typed_old_to_new_slots_.Value()); |
+ typed_old_to_new_slots_.SetValue(new TypedSlotSet(address())); |
} |
void MemoryChunk::ReleaseTypedOldToNewSlots() { |
- delete typed_old_to_new_slots_; |
- typed_old_to_new_slots_ = nullptr; |
+ TypedSlotSet* typed_old_to_new_slots = typed_old_to_new_slots_.Value(); |
+ delete typed_old_to_new_slots; |
+ typed_old_to_new_slots_.SetValue(nullptr); |
} |
void MemoryChunk::AllocateTypedOldToOldSlots() { |