diff options
Diffstat (limited to 'deps/v8/src/heap/scavenger.h')
-rw-r--r-- | deps/v8/src/heap/scavenger.h | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/deps/v8/src/heap/scavenger.h b/deps/v8/src/heap/scavenger.h index 1437092874..75b24fe282 100644 --- a/deps/v8/src/heap/scavenger.h +++ b/deps/v8/src/heap/scavenger.h @@ -28,14 +28,9 @@ class Scavenger { Scavenger(Heap* heap, bool is_logging, CopiedList* copied_list, PromotionList* promotion_list, int task_id); - // Scavenges an object |object| referenced from slot |p|. |object| is required - // to be in from space. - inline void ScavengeObject(HeapObject** p, HeapObject* object); - - // Potentially scavenges an object referenced from |slot_address| if it is - // indeed a HeapObject and resides in from space. - inline SlotCallbackResult CheckAndScavengeObject(Heap* heap, - Address slot_address); + // Entry point for scavenging an old generation page. For scavenging single + // objects see RootScavengingVisitor and ScavengeVisitor below. + void ScavengePage(MemoryChunk* page); // Processes remaining work (=objects) after single objects have been // manually scavenged using ScavengeObject or CheckAndScavengeObject. @@ -47,10 +42,6 @@ class Scavenger { size_t bytes_copied() const { return copied_size_; } size_t bytes_promoted() const { return promoted_size_; } - void AnnounceLockedPage(MemoryChunk* chunk) { - allocator_.AnnounceLockedPage(chunk); - } - private: // Number of objects to process before interrupting for potentially waking // up other tasks. @@ -61,6 +52,17 @@ class Scavenger { inline void PageMemoryFence(Object* object); + void AddPageToSweeperIfNecessary(MemoryChunk* page); + + // Potentially scavenges an object referenced from |slot_address| if it is + // indeed a HeapObject and resides in from space. + inline SlotCallbackResult CheckAndScavengeObject(Heap* heap, + Address slot_address); + + // Scavenges an object |object| referenced from slot |p|. |object| is required + // to be in from space. + inline void ScavengeObject(HeapObject** p, HeapObject* object); + // Copies |source| to |target| and sets the forwarding pointer in |source|. V8_INLINE bool MigrateObject(Map* map, HeapObject* source, HeapObject* target, int size); @@ -106,6 +108,8 @@ class Scavenger { const bool is_compacting_; friend class IterateAndScavengePromotedObjectsVisitor; + friend class RootScavengeVisitor; + friend class ScavengeVisitor; }; // Helper class for turning the scavenger into an object visitor that is also |