| Index: src/heap/mark-compact-inl.h
|
| diff --git a/src/heap/mark-compact-inl.h b/src/heap/mark-compact-inl.h
|
| index f117acee9b12f8a28d0af898eb0bcb04176cf715..0c4c57d6488b1aeea462c491d54ea8d14031dbf9 100644
|
| --- a/src/heap/mark-compact-inl.h
|
| +++ b/src/heap/mark-compact-inl.h
|
| @@ -6,7 +6,7 @@
|
| #define V8_HEAP_MARK_COMPACT_INL_H_
|
|
|
| #include "src/heap/mark-compact.h"
|
| -#include "src/heap/slots-buffer.h"
|
| +#include "src/heap/remembered-set.h"
|
| #include "src/isolate.h"
|
|
|
| namespace v8 {
|
| @@ -70,25 +70,12 @@ bool MarkCompactCollector::IsMarked(Object* obj) {
|
| void MarkCompactCollector::RecordSlot(HeapObject* object, Object** slot,
|
| Object* target) {
|
| Page* target_page = Page::FromAddress(reinterpret_cast<Address>(target));
|
| + Page* source_page = Page::FromAddress(reinterpret_cast<Address>(object));
|
| if (target_page->IsEvacuationCandidate() &&
|
| !ShouldSkipEvacuationSlotRecording(object)) {
|
| - if (!SlotsBuffer::AddTo(slots_buffer_allocator_,
|
| - target_page->slots_buffer_address(), slot,
|
| - SlotsBuffer::FAIL_ON_OVERFLOW)) {
|
| - EvictPopularEvacuationCandidate(target_page);
|
| - }
|
| - }
|
| -}
|
| -
|
| -
|
| -void MarkCompactCollector::ForceRecordSlot(HeapObject* object, Object** slot,
|
| - Object* target) {
|
| - Page* target_page = Page::FromAddress(reinterpret_cast<Address>(target));
|
| - if (target_page->IsEvacuationCandidate() &&
|
| - !ShouldSkipEvacuationSlotRecording(object)) {
|
| - CHECK(SlotsBuffer::AddTo(slots_buffer_allocator_,
|
| - target_page->slots_buffer_address(), slot,
|
| - SlotsBuffer::IGNORE_OVERFLOW));
|
| + DCHECK(Marking::IsBlackOrGrey(Marking::MarkBitFrom(object)));
|
| + RememberedSet<OLD_TO_OLD>::Insert(source_page,
|
| + reinterpret_cast<Address>(slot));
|
| }
|
| }
|
|
|
|
|