Index: src/heap/heap.h |
diff --git a/src/heap/heap.h b/src/heap/heap.h |
index 23159734cf595ad3f6e944e96fe1f87fcc93d913..a10a416ad8fc27b194554b630a6de495d9185039 100644 |
--- a/src/heap/heap.h |
+++ b/src/heap/heap.h |
@@ -700,16 +700,23 @@ class Heap { |
inline void FinalizeExternalString(String* string); |
// Initialize a filler object to keep the ability to iterate over the heap |
- // when shortening objects. |
+ // when introducing gaps within pages. |
void CreateFillerObjectAt(Address addr, int size); |
bool CanMoveObjectStart(HeapObject* object); |
+ // Maintain consistency of live bytes during incremental marking. |
Hannes Payer (out of office)
2014/08/05 10:45:07
Move the enum before the comment and describe in a
Michael Starzinger
2014/08/05 11:01:06
Done.
|
enum InvocationMode { FROM_GC, FROM_MUTATOR }; |
- |
- // Maintain marking consistency for IncrementalMarking. |
void AdjustLiveBytes(Address address, int by, InvocationMode mode); |
+ // Trim the given array from the left. Note that this relocates the object |
+ // start and hence is only valid if there is only a single reference to it. |
+ FixedArrayBase* LeftTrimFixedArray(FixedArrayBase* obj, int elements_to_trim); |
+ |
+ // Trim the given array from the right. |
+ template<Heap::InvocationMode mode> |
+ void RightTrimFixedArray(FixedArrayBase* obj, int elements_to_trim); |
+ |
// Converts the given boolean condition to JavaScript boolean value. |
inline Object* ToBoolean(bool condition); |