Index: src/incremental-marking.h |
diff --git a/src/incremental-marking.h b/src/incremental-marking.h |
index 2681be017c30377da22c72daf4dcb0602f587e98..7bd99bf7dc0e324c63f4bfb5270b79bb1ed6a0db 100644 |
--- a/src/incremental-marking.h |
+++ b/src/incremental-marking.h |
@@ -42,6 +42,7 @@ class IncrementalMarking : public AllStatic { |
public: |
enum State { |
STOPPED, |
+ SWEEPING, |
MARKING, |
COMPLETE |
}; |
@@ -57,7 +58,9 @@ class IncrementalMarking : public AllStatic { |
inline bool IsStopped() { return state() == STOPPED; } |
- inline bool IsMarking() { return state() == MARKING; } |
+ inline bool IsMarking() { return state() >= MARKING; } |
+ |
+ inline bool IsMarkingIncomplete() { return state() == MARKING; } |
bool WorthActivating(); |
@@ -73,6 +76,8 @@ class IncrementalMarking : public AllStatic { |
void Finalize(); |
+ void Abort(); |
+ |
void MarkingComplete(); |
// It's hard to know how much work the incremental marker should do to make |
@@ -195,6 +200,16 @@ class IncrementalMarking : public AllStatic { |
allocation_marking_factor_ = kInitialAllocationMarkingFactor; |
} |
+ static void ClearMarkbits(PagedSpace* space); |
+ void ClearMarkbits(); |
+ |
+#ifdef DEBUG |
+ void VerifyMarkbitsAreClean(); |
+ static void VerifyMarkbitsAreClean(PagedSpace* space); |
+#endif |
+ |
+ void StartMarking(); |
+ |
Heap* heap_; |