Chromium Code Reviews| Index: runtime/vm/freelist.h |
| diff --git a/runtime/vm/freelist.h b/runtime/vm/freelist.h |
| index 8ec1ac45e8d90c880ab6f18d94186d5509fa9c03..9bed00ee4dbe89d3288578c806f10f7d9d12c52b 100644 |
| --- a/runtime/vm/freelist.h |
| +++ b/runtime/vm/freelist.h |
| @@ -19,9 +19,15 @@ namespace dart { |
| // the element at the address following the next_ field. |
| class FreeListElement { |
| public: |
| + // Maximum header size is three words (tags, next, and size). |
| + static const intptr_t kHeaderSize = 3 * kWordSize; |
|
Ivan Posva
2014/02/03 05:44:35
This does not look and sound right. Especially how
Florian Schneider
2014/02/10 11:56:17
This is a little confusing, but should be right: T
|
| + |
| FreeListElement* next() const { |
| return next_; |
| } |
| + uword next_address() const { |
| + return reinterpret_cast<uword>(&next_); |
| + } |
| void set_next(FreeListElement* next) { |
| next_ = next; |
| @@ -75,7 +81,7 @@ class FreeList { |
| FreeList(); |
| ~FreeList(); |
| - uword TryAllocate(intptr_t size); |
| + uword TryAllocate(intptr_t size, bool is_protected); |
| void Free(uword addr, intptr_t size); |
| void Reset(); |
| @@ -92,7 +98,9 @@ class FreeList { |
| void EnqueueElement(FreeListElement* element, intptr_t index); |
| FreeListElement* DequeueElement(intptr_t index); |
| - void SplitElementAfterAndEnqueue(FreeListElement* element, intptr_t size); |
| + void SplitElementAfterAndEnqueue(FreeListElement* element, |
| + intptr_t size, |
| + bool is_protected); |
| void PrintSmall() const; |
| void PrintLarge() const; |