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_; |