Index: src/heap/scavenger.h |
diff --git a/src/heap/scavenger.h b/src/heap/scavenger.h |
index 3db2e5d470f797a759bec2ccca7a40868f4a119c..f2213b8a363c5d41976859a221a63bcdddd67ba3 100644 |
--- a/src/heap/scavenger.h |
+++ b/src/heap/scavenger.h |
@@ -12,8 +12,7 @@ namespace v8 { |
namespace internal { |
typedef void (*ScavengingCallback)(Map* map, HeapObject** slot, |
- HeapObject* object, |
- PromotionMode promotion_mode); |
+ HeapObject* object); |
class Scavenger { |
public: |
@@ -26,15 +25,12 @@ class Scavenger { |
// necessary, the object might be promoted to an old space. The caller must |
// ensure the precondition that the object is (a) a heap object and (b) in |
// the heap's from space. |
- static inline void ScavengeObject( |
- HeapObject** p, HeapObject* object, |
- PromotionMode promotion_mode = DEFAULT_PROMOTION); |
- static inline SlotCallbackResult CheckAndScavengeObject( |
- Heap* heap, Address slot_address, PromotionMode promotion_mode); |
+ static inline void ScavengeObject(HeapObject** p, HeapObject* object); |
+ static inline SlotCallbackResult CheckAndScavengeObject(Heap* heap, |
+ Address slot_address); |
// Slow part of {ScavengeObject} above. |
- static void ScavengeObjectSlow(HeapObject** p, HeapObject* object, |
- PromotionMode promotion_mode); |
+ static void ScavengeObjectSlow(HeapObject** p, HeapObject* object); |
// Chooses an appropriate static visitor table depending on the current state |
// of the heap (i.e. incremental marking, logging and profiling). |
@@ -67,8 +63,9 @@ class ScavengeVisitor : public ObjectVisitor { |
// Helper class for turning the scavenger into an object visitor that is also |
// filtering out non-HeapObjects and objects which do not reside in new space. |
+template <PromotionMode promotion_mode> |
class StaticScavengeVisitor |
- : public StaticNewSpaceVisitor<StaticScavengeVisitor> { |
+ : public StaticNewSpaceVisitor<StaticScavengeVisitor<promotion_mode>> { |
public: |
static inline void VisitPointer(Heap* heap, HeapObject* object, Object** p); |
}; |