Chromium Code Reviews| Index: src/heap/mark-compact.h |
| diff --git a/src/heap/mark-compact.h b/src/heap/mark-compact.h |
| index de21aa1d901780a64f87ec1344de39d6c8653148..bd478d7c06cb999e31e0e1f0b0ca73a10679416f 100644 |
| --- a/src/heap/mark-compact.h |
| +++ b/src/heap/mark-compact.h |
| @@ -116,10 +116,6 @@ class Marking { |
| markbit.Next().Set(); |
| } |
| - static void SetAllMarkBitsInRange(MarkBit start, MarkBit end); |
| - static void ClearAllMarkBitsOfCellsContainedInRange(MarkBit start, |
| - MarkBit end); |
| - |
| void TransferMark(Address old_start, Address new_start); |
| #ifdef DEBUG |
| @@ -363,8 +359,6 @@ class SlotsBuffer { |
| void UpdateSlots(Heap* heap); |
| - void UpdateSlotsWithFilter(Heap* heap); |
| - |
| SlotsBuffer* next() { return next_; } |
| static int SizeOfChain(SlotsBuffer* buffer) { |
| @@ -377,14 +371,9 @@ class SlotsBuffer { |
| inline bool HasSpaceForTypedSlot() { return idx_ < kNumberOfElements - 1; } |
| - static void UpdateSlotsRecordedIn(Heap* heap, SlotsBuffer* buffer, |
| - bool code_slots_filtering_required) { |
| + static void UpdateSlotsRecordedIn(Heap* heap, SlotsBuffer* buffer) { |
| while (buffer != NULL) { |
| - if (code_slots_filtering_required) { |
| - buffer->UpdateSlotsWithFilter(heap); |
| - } else { |
| - buffer->UpdateSlots(heap); |
| - } |
| + buffer->UpdateSlots(heap); |
| buffer = buffer->next(); |
| } |
| } |
| @@ -423,6 +412,10 @@ class SlotsBuffer { |
| // before sweeping when mark bits are still intact. |
| static void RemoveInvalidSlots(Heap* heap, SlotsBuffer* buffer); |
| + // Eliminate all slots that point to the given invalid_object. |
| + static void RemoveObjectSlots(Heap* heap, SlotsBuffer* buffer, |
| + HeapObject* invalid_object); |
| + |
| // Ensures that there are no invalid slots in the chain of slots buffers. |
| static void VerifySlots(Heap* heap, SlotsBuffer* buffer); |
| @@ -670,8 +663,6 @@ class MarkCompactCollector { |
| bool TryPromoteObject(HeapObject* object, int object_size); |
| - void InvalidateCode(Code* code); |
| - |
| void ClearMarkbits(); |
| bool abort_incremental_marking() const { return abort_incremental_marking_; } |
| @@ -743,6 +734,7 @@ class MarkCompactCollector { |
| bool IsSlotInBlackObjectSlow(Page* p, Address slot); |
| bool IsSlotInLiveObject(Address slot); |
| void VerifyIsSlotInLiveObject(Address slot, HeapObject* object); |
| + void RemoveObjectSlots(HeapObject* invalid_object); |
|
Michael Starzinger
2015/06/30 08:54:19
nit: The comment above this block doesn't really a
Hannes Payer (out of office)
2015/06/30 09:02:10
Done.
|
| private: |
| class SweeperTask; |
| @@ -750,10 +742,7 @@ class MarkCompactCollector { |
| explicit MarkCompactCollector(Heap* heap); |
| ~MarkCompactCollector(); |
| - bool MarkInvalidatedCode(); |
| bool WillBeDeoptimized(Code* code); |
| - void RemoveDeadInvalidatedCode(); |
| - void ProcessInvalidatedCode(ObjectVisitor* visitor); |
| void EvictPopularEvacuationCandidate(Page* page); |
| void ClearInvalidSlotsBufferEntries(PagedSpace* space); |
| void ClearInvalidStoreAndSlotsBufferEntries(); |
| @@ -970,7 +959,6 @@ class MarkCompactCollector { |
| bool have_code_to_deoptimize_; |
| List<Page*> evacuation_candidates_; |
| - List<Code*> invalidated_code_; |
| SmartPointer<FreeList> free_list_old_space_; |