Index: src/mark-compact.h |
diff --git a/src/mark-compact.h b/src/mark-compact.h |
index 9a0b014d633d6a069f288c9341cd9eac38531a66..e92cbfe1f9e756b2616001029f8c4b94629bf1a3 100644 |
--- a/src/mark-compact.h |
+++ b/src/mark-compact.h |
@@ -500,6 +500,13 @@ class CodeFlusher { |
class ThreadLocalTop; |
+enum SweeperType { |
+ CONSERVATIVE, |
+ LAZY_CONSERVATIVE, |
+ PRECISE |
+}; |
+ |
+ |
// ------------------------------------------------------------------------- |
// Mark-Compact collector |
class MarkCompactCollector { |
@@ -584,12 +591,6 @@ class MarkCompactCollector { |
inline bool is_code_flushing_enabled() const { return code_flusher_ != NULL; } |
void EnableCodeFlushing(bool enable); |
- enum SweeperType { |
- CONSERVATIVE, |
- LAZY_CONSERVATIVE, |
- PRECISE |
- }; |
- |
#ifdef VERIFY_HEAP |
void VerifyMarkbitsAreClean(); |
static void VerifyMarkbitsAreClean(PagedSpace* space); |
@@ -598,7 +599,14 @@ class MarkCompactCollector { |
// Sweep a single page from the given space conservatively. |
// Return a number of reclaimed bytes. |
- static intptr_t SweepConservatively(PagedSpace* space, Page* p); |
+ static intptr_t SweepConservatively(PagedSpace* space, |
+ FreeList* free_list, |
+ Page* p); |
+ |
+ static intptr_t Free(PagedSpace* space, |
+ FreeList* free_list, |
+ Address start, |
+ int size); |
INLINE(static bool ShouldSkipEvacuationSlotRecording(Object** anchor)) { |
return Page::FromAddress(reinterpret_cast<Address>(anchor))-> |
@@ -664,6 +672,11 @@ class MarkCompactCollector { |
MarkingParity marking_parity() { return marking_parity_; } |
+ void SweepInParallel(PagedSpace* space, |
+ SweeperType sweeper_type, |
+ FreeList* private_free_list, |
+ FreeList* free_list); |
+ |
private: |
MarkCompactCollector(); |
~MarkCompactCollector(); |
@@ -836,6 +849,8 @@ class MarkCompactCollector { |
void SweepSpace(PagedSpace* space, SweeperType sweeper); |
+ void PrepareParallelSweeping(PagedSpace* space); |
+ |
#ifdef DEBUG |
friend class MarkObjectVisitor; |
static void VisitObject(HeapObject* obj); |