diff options
Diffstat (limited to 'src/3rdparty/v8/src/small-pointer-list.h')
-rw-r--r-- | src/3rdparty/v8/src/small-pointer-list.h | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/3rdparty/v8/src/small-pointer-list.h b/src/3rdparty/v8/src/small-pointer-list.h index 75fea06..295a06f 100644 --- a/src/3rdparty/v8/src/small-pointer-list.h +++ b/src/3rdparty/v8/src/small-pointer-list.h @@ -44,22 +44,22 @@ class SmallPointerList { public: SmallPointerList() : data_(kEmptyTag) {} - explicit SmallPointerList(int capacity) : data_(kEmptyTag) { - Reserve(capacity); + SmallPointerList(int capacity, Zone* zone) : data_(kEmptyTag) { + Reserve(capacity, zone); } - void Reserve(int capacity) { + void Reserve(int capacity, Zone* zone) { if (capacity < 2) return; if ((data_ & kTagMask) == kListTag) { if (list()->capacity() >= capacity) return; int old_length = list()->length(); - list()->AddBlock(NULL, capacity - list()->capacity()); + list()->AddBlock(NULL, capacity - list()->capacity(), zone); list()->Rewind(old_length); return; } - PointerList* list = new PointerList(capacity); + PointerList* list = new(zone) PointerList(capacity, zone); if ((data_ & kTagMask) == kSingletonTag) { - list->Add(single_value()); + list->Add(single_value(), zone); } ASSERT(IsAligned(reinterpret_cast<intptr_t>(list), kPointerAlignment)); data_ = reinterpret_cast<intptr_t>(list) | kListTag; @@ -83,21 +83,21 @@ class SmallPointerList { return list()->length(); } - void Add(T* pointer) { + void Add(T* pointer, Zone* zone) { ASSERT(IsAligned(reinterpret_cast<intptr_t>(pointer), kPointerAlignment)); if ((data_ & kTagMask) == kEmptyTag) { data_ = reinterpret_cast<intptr_t>(pointer) | kSingletonTag; return; } if ((data_ & kTagMask) == kSingletonTag) { - PointerList* list = new PointerList(2); - list->Add(single_value()); - list->Add(pointer); + PointerList* list = new(zone) PointerList(2, zone); + list->Add(single_value(), zone); + list->Add(pointer, zone); ASSERT(IsAligned(reinterpret_cast<intptr_t>(list), kPointerAlignment)); data_ = reinterpret_cast<intptr_t>(list) | kListTag; return; } - list()->Add(pointer); + list()->Add(pointer, zone); } // Note: returns T* and not T*& (unlike List from list.h). |