| 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).
 | 
| 
 |