| Index: src/heap/mark-compact.cc
|
| diff --git a/src/heap/mark-compact.cc b/src/heap/mark-compact.cc
|
| index b4fafec10939aea23ddd4bc2aada41fee52eced9..489b92aca987fd251128e262404e03baafbeaa41 100644
|
| --- a/src/heap/mark-compact.cc
|
| +++ b/src/heap/mark-compact.cc
|
| @@ -4558,14 +4558,14 @@ bool SlotsBuffer::AddTo(SlotsBufferAllocator* allocator,
|
| }
|
|
|
|
|
| -static Object* g_smi_slot = NULL;
|
| -
|
| -
|
| void SlotsBuffer::RemoveInvalidSlots(Heap* heap, SlotsBuffer* buffer) {
|
| - DCHECK_EQ(Smi::FromInt(0), g_smi_slot);
|
| -
|
| - // Remove entries by replacing them with a dummy slot containing a smi.
|
| - const ObjectSlot kRemovedEntry = &g_smi_slot;
|
| + // Remove entries by replacing them with an old-space slot containing a smi
|
| + // that is located in an unmovable page.
|
| + const ObjectSlot kRemovedEntry =
|
| + HeapObject::RawField(heap->empty_fixed_array(),
|
| + FixedArrayBase::kLengthOffset);
|
| + DCHECK(Page::FromAddress(
|
| + reinterpret_cast<Address>(kRemovedEntry))->NeverEvacuate());
|
|
|
| while (buffer != NULL) {
|
| SlotsBuffer::ObjectSlot* slots = buffer->slots_;
|
| @@ -4593,8 +4593,6 @@ void SlotsBuffer::RemoveInvalidSlots(Heap* heap, SlotsBuffer* buffer) {
|
|
|
|
|
| void SlotsBuffer::VerifySlots(Heap* heap, SlotsBuffer* buffer) {
|
| - DCHECK_EQ(Smi::FromInt(0), g_smi_slot);
|
| -
|
| while (buffer != NULL) {
|
| SlotsBuffer::ObjectSlot* slots = buffer->slots_;
|
| intptr_t slots_count = buffer->idx_;
|
|
|