| Index: src/heap/spaces.h
|
| diff --git a/src/heap/spaces.h b/src/heap/spaces.h
|
| index 67e9aae114326e8a57f55751115c063882b30712..4b740a54a5afd5dd27cc2ec9da8c8e73cd310ac3 100644
|
| --- a/src/heap/spaces.h
|
| +++ b/src/heap/spaces.h
|
| @@ -1643,51 +1643,40 @@ class PageIterator BASE_EMBEDDED {
|
| // space.
|
| class AllocationInfo {
|
| public:
|
| - AllocationInfo() : top_(nullptr), limit_(nullptr) {}
|
| - AllocationInfo(Address top, Address limit) : top_(top), limit_(limit) {}
|
| + AllocationInfo() { Reset(nullptr, nullptr); }
|
| + AllocationInfo(Address top, Address limit) { Reset(top, limit); }
|
|
|
| void Reset(Address top, Address limit) {
|
| set_top(top);
|
| set_limit(limit);
|
| }
|
|
|
| - INLINE(void set_top(Address top)) {
|
| - SLOW_DCHECK(top == NULL ||
|
| - (reinterpret_cast<intptr_t>(top) & kHeapObjectTagMask) == 0);
|
| - top_ = top;
|
| + inline void set_top(Address top) {
|
| + SLOW_DCHECK((reinterpret_cast<intptr_t>(top) & kHeapObjectTagMask) == 0);
|
| + top_ = reinterpret_cast<intptr_t>(top) + kHeapObjectTag;
|
| }
|
|
|
| - INLINE(Address top()) const {
|
| - SLOW_DCHECK(top_ == NULL ||
|
| - (reinterpret_cast<intptr_t>(top_) & kHeapObjectTagMask) == 0);
|
| - return top_;
|
| + inline Address top() const {
|
| + SLOW_DCHECK((reinterpret_cast<intptr_t>(top_) & kHeapObjectTagMask) ==
|
| + kHeapObjectTag);
|
| + return reinterpret_cast<Address>(top_ - kHeapObjectTag);
|
| }
|
|
|
| - Address* top_address() { return &top_; }
|
| + Address* top_address() { return reinterpret_cast<Address*>(&top_); }
|
|
|
| - INLINE(void set_limit(Address limit)) {
|
| - limit_ = limit;
|
| + inline void set_limit(Address limit) {
|
| + limit_ = reinterpret_cast<intptr_t>(limit);
|
| }
|
|
|
| - INLINE(Address limit()) const {
|
| - return limit_;
|
| - }
|
| -
|
| - Address* limit_address() { return &limit_; }
|
| + inline Address limit() const { return reinterpret_cast<Address>(limit_); }
|
|
|
| -#ifdef DEBUG
|
| - bool VerifyPagedAllocation() {
|
| - return (Page::FromAllocationAreaAddress(top_) ==
|
| - Page::FromAllocationAreaAddress(limit_)) &&
|
| - (top_ <= limit_);
|
| - }
|
| -#endif
|
| + Address* limit_address() { return reinterpret_cast<Address*>(&limit_); }
|
|
|
| private:
|
| - // Current allocation top.
|
| - Address top_;
|
| + // Current tagged allocation top.
|
| + intptr_t top_;
|
| // Current allocation limit.
|
| - Address limit_;
|
| + intptr_t limit_;
|
| };
|
|
|
|
|
|
|