Chromium Code Reviews| Index: src/heap/spaces.h |
| diff --git a/src/heap/spaces.h b/src/heap/spaces.h |
| index cf06ca78aafc57fd7f6569c2217b730864c86fbd..ee199d69e5f985a67985e5b52ff3601a67f00d54 100644 |
| --- a/src/heap/spaces.h |
| +++ b/src/heap/spaces.h |
| @@ -1630,51 +1630,39 @@ 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((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. |
|
Hannes Payer (out of office)
2016/05/31 18:19:35
Mention that limit is untagged.
epertoso
2016/06/01 08:06:22
Done.
|
| - Address limit_; |
| + intptr_t limit_; |
| }; |