Index: src/heap/mark-compact.h |
diff --git a/src/heap/mark-compact.h b/src/heap/mark-compact.h |
index 1b7cef59e47177035be58457cb088c77ba63dbeb..7e1fa9e1c6863aae4ca8f7c84f04e92f97b739da 100644 |
--- a/src/heap/mark-compact.h |
+++ b/src/heap/mark-compact.h |
@@ -314,6 +314,15 @@ class ThreadLocalTop; |
// Mark-Compact collector |
class MarkCompactCollector { |
public: |
+ enum IterationMode { |
+ kKeepMarking, |
+ kClearMarkbits, |
+ }; |
+ |
+ class EvacuateNewSpaceVisitor; |
+ class EvacuateOldSpaceVisitor; |
+ class HeapObjectVisitor; |
+ |
static void Initialize(); |
void SetUp(); |
@@ -695,14 +704,13 @@ class MarkCompactCollector { |
// regions to each space's free list. |
void SweepSpaces(); |
- int DiscoverAndEvacuateBlackObjectsOnPage(NewSpace* new_space, |
- NewSpacePage* p); |
+ // Iterates through all live objects on a page using marking information. |
+ // Returns whether all objects have successfully been visited. |
+ bool IterateLiveObjectsOnPage(MemoryChunk* page, HeapObjectVisitor* visitor, |
+ IterationMode mode); |
void EvacuateNewSpace(); |
- bool EvacuateLiveObjectsFromPage(Page* p, PagedSpace* target_space, |
- SlotsBuffer** evacuation_slots_buffer); |
- |
void AddEvacuationSlotsBufferSynchronized( |
SlotsBuffer* evacuation_slots_buffer); |