Chromium Code Reviews| Index: src/heap/heap.h |
| diff --git a/src/heap/heap.h b/src/heap/heap.h |
| index 4a76777ecd06727983709105fdc1439acb2515b8..b6f09e2f81a0bffb07049f56a2b104020c4438c3 100644 |
| --- a/src/heap/heap.h |
| +++ b/src/heap/heap.h |
| @@ -403,6 +403,7 @@ enum ArrayStorageAllocationMode { |
| INITIALIZE_ARRAY_ELEMENTS_WITH_HOLE |
| }; |
| +enum RecordedSlotsMode { kClearRecordedSlots, kNoRecordedSlots }; |
|
jochen (gone - plz use gerrit)
2016/02/25 13:49:57
what about making this an enum class? enum class C
ulan
2016/02/25 14:05:14
Nice trick! Done.
|
| class Heap { |
| public: |
| @@ -632,8 +633,10 @@ class Heap { |
| void MoveElements(FixedArray* array, int dst_index, int src_index, int len); |
| // Initialize a filler object to keep the ability to iterate over the heap |
| - // when introducing gaps within pages. |
| - void CreateFillerObjectAt(Address addr, int size); |
| + // when introducing gaps within pages. If slots could have been recorded in |
| + // the freed area, then pass kClearRecordedSlots as the mode. Otherwise, |
| + // pass kNoRecordedSlots. |
| + void CreateFillerObjectAt(Address addr, int size, RecordedSlotsMode mode); |
| bool CanMoveObjectStart(HeapObject* object); |
| @@ -1060,7 +1063,7 @@ class Heap { |
| } |
| void ClearRecordedSlot(HeapObject* object, Object** slot); |
| - void ClearRecordedSlotRange(HeapObject* object, Object** start, Object** end); |
| + void ClearRecordedSlotRange(Address start, Address end); |
| // =========================================================================== |
| // Incremental marking API. ================================================== |