| OLD | NEW |
| 1 // Copyright (c) 2014, the Dartino project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dartino project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE.md file. | 3 // BSD-style license that can be found in the LICENSE.md file. |
| 4 | 4 |
| 5 #include "src/vm/object_list.h" | 5 #include "src/vm/object_list.h" |
| 6 | 6 |
| 7 namespace fletch { | 7 namespace dartino { |
| 8 | 8 |
| 9 ObjectList::ObjectList(int capacity) { | 9 ObjectList::ObjectList(int capacity) { |
| 10 contents_ = List<Object*>::New(capacity); | 10 contents_ = List<Object*>::New(capacity); |
| 11 length_ = 0; | 11 length_ = 0; |
| 12 } | 12 } |
| 13 | 13 |
| 14 ObjectList::~ObjectList() { contents_.Delete(); } | 14 ObjectList::~ObjectList() { contents_.Delete(); } |
| 15 | 15 |
| 16 void ObjectList::Add(Object* object) { | 16 void ObjectList::Add(Object* object) { |
| 17 int index = length_++; | 17 int index = length_++; |
| 18 if (index == contents_.length()) { | 18 if (index == contents_.length()) { |
| 19 contents_.Reallocate(index + (1 * KB)); | 19 contents_.Reallocate(index + (1 * KB)); |
| 20 } | 20 } |
| 21 contents_[index] = object; | 21 contents_[index] = object; |
| 22 } | 22 } |
| 23 | 23 |
| 24 void ObjectList::Clear() { length_ = 0; } | 24 void ObjectList::Clear() { length_ = 0; } |
| 25 | 25 |
| 26 void ObjectList::IteratePointers(PointerVisitor* visitor) { | 26 void ObjectList::IteratePointers(PointerVisitor* visitor) { |
| 27 Object** stack_start = contents_.data(); | 27 Object** stack_start = contents_.data(); |
| 28 Object** stack_end = stack_start + length_; | 28 Object** stack_end = stack_start + length_; |
| 29 visitor->VisitBlock(stack_start, stack_end); | 29 visitor->VisitBlock(stack_start, stack_end); |
| 30 } | 30 } |
| 31 | 31 |
| 32 } // namespace fletch | 32 } // namespace dartino |
| OLD | NEW |