Index: src/heap/mark-compact.h |
diff --git a/src/heap/mark-compact.h b/src/heap/mark-compact.h |
index cfb2d9d27022f033341acce33c68212faa8ac31a..304bd1e4c4cea80747d1da7c76a49ea6efbbb1f6 100644 |
--- a/src/heap/mark-compact.h |
+++ b/src/heap/mark-compact.h |
@@ -421,7 +421,8 @@ class MarkCompactCollector { |
// required_freed_bytes was freed. If required_freed_bytes was set to zero |
// then the whole given space is swept. It returns the size of the maximum |
// continuous freed memory chunk. |
- int SweepInParallel(PagedSpace* space, int required_freed_bytes); |
+ int SweepInParallel(PagedSpace* space, int required_freed_bytes, |
+ int max_pages = 0); |
// Sweeps a given page concurrently to the sweeper threads. It returns the |
// size of the maximum continuous freed memory chunk. |
@@ -511,6 +512,8 @@ class MarkCompactCollector { |
class HeapObjectVisitor; |
class SweeperTask; |
+ typedef std::vector<Page*> SweepingList; |
+ |
static const int kInitialLocalPretenuringFeedbackCapacity = 256; |
explicit MarkCompactCollector(Heap* heap); |
@@ -693,6 +696,8 @@ class MarkCompactCollector { |
// evacuation. |
// |
+ inline SweepingList& sweeping_list(Space* space); |
+ |
// If we are not compacting the heap, we simply sweep the spaces except |
// for the large object space, clearing mark bits and adding unmarked |
// regions to each space's free list. |
@@ -736,10 +741,6 @@ class MarkCompactCollector { |
void ReleaseEvacuationCandidates(); |
- // Moves the pages of the evacuation_candidates_ list to the end of their |
- // corresponding space pages list. |
- void MoveEvacuationCandidatesToEndOfPagesList(); |
- |
// Starts sweeping of a space by contributing on the main thread and setting |
// up other pages for sweeping. |
void StartSweepSpace(PagedSpace* space); |
@@ -793,6 +794,10 @@ class MarkCompactCollector { |
base::SmartPointer<FreeList> free_list_code_space_; |
base::SmartPointer<FreeList> free_list_map_space_; |
+ SweepingList sweeping_list_old_space_; |
+ SweepingList sweeping_list_code_space_; |
+ SweepingList sweeping_list_map_space_; |
+ |
// True if we are collecting slots to perform evacuation from evacuation |
// candidates. |
bool compacting_; |