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(); |