Chromium Code Reviews| Index: src/heap/mark-compact.h |
| diff --git a/src/heap/mark-compact.h b/src/heap/mark-compact.h |
| index ddb993f5a2f676491e732da2a1a39cae26c48b59..15fd1c94ae62f8d10d00b9e86ea1d4f3a744b640 100644 |
| --- a/src/heap/mark-compact.h |
| +++ b/src/heap/mark-compact.h |
| @@ -363,6 +363,11 @@ class SlotsBuffer { |
| SlotsBuffer** buffer_address, SlotType type, Address addr, |
| AdditionMode mode); |
| + static void RemoveInvalidSlots(Heap* heap, SlotsBuffer* buffer); |
|
Erik Corry
2015/03/24 15:11:45
It would be good with a 1-line comment to explain
Igor Sheludko
2015/03/24 15:17:56
Done.
|
| + |
| + // Ensures that there are no invalid slots in the chain of store buffers. |
|
Hannes Payer (out of office)
2015/03/24 14:47:05
slot
Igor Sheludko
2015/03/24 15:10:25
Done.
|
| + static void VerifySlots(Heap* heap, SlotsBuffer* buffer); |
| + |
| static const int kNumberOfElements = 1021; |
| private: |
| @@ -679,10 +684,10 @@ class MarkCompactCollector { |
| // The following four methods can just be called after marking, when the |
| // whole transitive closure is known. They must be called before sweeping |
| // when mark bits are still intact. |
| - bool IsSlotInBlackObject(Page* p, Address slot); |
| + bool IsSlotInBlackObject(Page* p, Address slot, HeapObject** out_object); |
| bool IsSlotInBlackObjectSlow(Page* p, Address slot); |
| - bool IsSlotInLiveObject(HeapObject** address, HeapObject* object); |
| - void VerifyIsSlotInLiveObject(HeapObject** address, HeapObject* object); |
| + bool IsSlotInLiveObject(Address slot); |
| + void VerifyIsSlotInLiveObject(Address slot, HeapObject* object); |
| private: |
| class SweeperTask; |
| @@ -694,6 +699,8 @@ class MarkCompactCollector { |
| bool WillBeDeoptimized(Code* code); |
| void RemoveDeadInvalidatedCode(); |
| void ProcessInvalidatedCode(ObjectVisitor* visitor); |
| + void ClearInvalidSlotsBufferEntries(PagedSpace* space); |
| + void ClearInvalidStoreAndSlotsBufferEntries(); |
| void StartSweeperThreads(); |