Index: src/small-pointer-list.h |
diff --git a/src/small-pointer-list.h b/src/small-pointer-list.h |
index 75fea061ad74b4209271e2d7982baa75f100d705..295a06f26afc50bc39f81a21f777f3e1b922b4de 100644 |
--- a/src/small-pointer-list.h |
+++ b/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). |