| Index: src/heap/mark-compact.h
|
| diff --git a/src/heap/mark-compact.h b/src/heap/mark-compact.h
|
| index 67568a96e346f761d1897b57eac904b5122a3d5e..7203ad05c0eda3e9afb309149d725cc066930191 100644
|
| --- a/src/heap/mark-compact.h
|
| +++ b/src/heap/mark-compact.h
|
| @@ -53,15 +53,21 @@ class ObjectMarking : public AllStatic {
|
| class MarkingDeque {
|
| public:
|
| MarkingDeque()
|
| - : array_(NULL),
|
| + : backing_store_(nullptr),
|
| + backing_store_committed_size_(0),
|
| + array_(nullptr),
|
| top_(0),
|
| bottom_(0),
|
| mask_(0),
|
| overflowed_(false),
|
| in_use_(false) {}
|
|
|
| - void Initialize(Address low, Address high);
|
| - void Uninitialize(bool aborting = false);
|
| + void SetUp();
|
| + void TearDown();
|
| +
|
| + void StartUsing();
|
| + void StopUsing();
|
| + void Clear();
|
|
|
| inline bool IsFull() { return ((top_ + 1) & mask_) == bottom_; }
|
|
|
| @@ -69,8 +75,6 @@ class MarkingDeque {
|
|
|
| bool overflowed() const { return overflowed_; }
|
|
|
| - bool in_use() const { return in_use_; }
|
| -
|
| void ClearOverflowed() { overflowed_ = false; }
|
|
|
| void SetOverflowed() { overflowed_ = true; }
|
| @@ -118,6 +122,14 @@ class MarkingDeque {
|
| void set_top(int top) { top_ = top; }
|
|
|
| private:
|
| + static const size_t kMaxSize = 4 * MB;
|
| + static const size_t kMinSize = 256 * KB;
|
| +
|
| + void EnsureCommitted();
|
| + void Uncommit();
|
| +
|
| + base::VirtualMemory* backing_store_;
|
| + size_t backing_store_committed_size_;
|
| HeapObject** array_;
|
| // array_[(top - 1) & mask_] is the top element in the deque. The Deque is
|
| // empty when top_ == bottom_. It is full when top_ + 1 == bottom
|
| @@ -470,21 +482,6 @@ class MarkCompactCollector {
|
|
|
| MarkingDeque* marking_deque() { return &marking_deque_; }
|
|
|
| - static const size_t kMaxMarkingDequeSize = 4 * MB;
|
| - static const size_t kMinMarkingDequeSize = 256 * KB;
|
| -
|
| - void EnsureMarkingDequeIsCommittedAndInitialize(size_t max_size) {
|
| - if (!marking_deque()->in_use()) {
|
| - EnsureMarkingDequeIsCommitted(max_size);
|
| - InitializeMarkingDeque();
|
| - }
|
| - }
|
| -
|
| - void EnsureMarkingDequeIsCommitted(size_t max_size);
|
| - void EnsureMarkingDequeIsReserved();
|
| -
|
| - void InitializeMarkingDeque();
|
| -
|
| Sweeper& sweeper() { return sweeper_; }
|
|
|
| private:
|
| @@ -708,8 +705,6 @@ class MarkCompactCollector {
|
|
|
| bool have_code_to_deoptimize_;
|
|
|
| - base::VirtualMemory* marking_deque_memory_;
|
| - size_t marking_deque_memory_committed_;
|
| MarkingDeque marking_deque_;
|
|
|
| CodeFlusher* code_flusher_;
|
|
|