| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * This library is free software; you can redistribute it and/or | 4 * This library is free software; you can redistribute it and/or |
| 5 * modify it under the terms of the GNU Library General Public | 5 * modify it under the terms of the GNU Library General Public |
| 6 * License as published by the Free Software Foundation; either | 6 * License as published by the Free Software Foundation; either |
| 7 * version 2 of the License, or (at your option) any later version. | 7 * version 2 of the License, or (at your option) any later version. |
| 8 * | 8 * |
| 9 * This library is distributed in the hope that it will be useful, | 9 * This library is distributed in the hope that it will be useful, |
| 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| (...skipping 558 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 569 } | 569 } |
| 570 } | 570 } |
| 571 | 571 |
| 572 void finalize() | 572 void finalize() |
| 573 { | 573 { |
| 574 this->~Vector(); | 574 this->~Vector(); |
| 575 } | 575 } |
| 576 | 576 |
| 577 void clearUnusedSlots(T* from, T* to) | 577 void clearUnusedSlots(T* from, T* to) |
| 578 { | 578 { |
| 579 VectorUnusedSlotClearer<Allocator::heapAllocation && (VectorTraits<T
>::needsDestruction || VectorTraits<T>::needsVisiting || VectorTraits<T>::isWeak
), T>::clear(from, to); | 579 VectorUnusedSlotClearer<Allocator::heapAllocation && (VectorTraits<T
>::needsDestruction || VectorTraits<T>::needsTracing || VectorTraits<T>::isWeak)
, T>::clear(from, to); |
| 580 } | 580 } |
| 581 | 581 |
| 582 Vector(const Vector&); | 582 Vector(const Vector&); |
| 583 template<size_t otherCapacity> | 583 template<size_t otherCapacity> |
| 584 Vector(const Vector<T, otherCapacity, Allocator>&); | 584 Vector(const Vector<T, otherCapacity, Allocator>&); |
| 585 | 585 |
| 586 Vector& operator=(const Vector&); | 586 Vector& operator=(const Vector&); |
| 587 template<size_t otherCapacity> | 587 template<size_t otherCapacity> |
| 588 Vector& operator=(const Vector<T, otherCapacity, Allocator>&); | 588 Vector& operator=(const Vector<T, otherCapacity, Allocator>&); |
| 589 | 589 |
| (...skipping 638 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1228 template<typename T> struct ValueCheck<Vector<T> > { | 1228 template<typename T> struct ValueCheck<Vector<T> > { |
| 1229 typedef Vector<T> TraitType; | 1229 typedef Vector<T> TraitType; |
| 1230 static void checkConsistency(const Vector<T>& v) | 1230 static void checkConsistency(const Vector<T>& v) |
| 1231 { | 1231 { |
| 1232 v.checkConsistency(); | 1232 v.checkConsistency(); |
| 1233 } | 1233 } |
| 1234 }; | 1234 }; |
| 1235 #endif | 1235 #endif |
| 1236 | 1236 |
| 1237 // This is only called if the allocator is a HeapAllocator. It is used when | 1237 // This is only called if the allocator is a HeapAllocator. It is used when |
| 1238 // visiting during a tracing GC. | 1238 // tracing during a garbage collection. |
| 1239 template<typename T, size_t inlineCapacity, typename Allocator> | 1239 template<typename T, size_t inlineCapacity, typename Allocator> |
| 1240 void Vector<T, inlineCapacity, Allocator>::trace(typename Allocator::Visitor
* visitor) | 1240 void Vector<T, inlineCapacity, Allocator>::trace(typename Allocator::Visitor
* visitor) |
| 1241 { | 1241 { |
| 1242 const T* bufferBegin = buffer(); | 1242 const T* bufferBegin = buffer(); |
| 1243 const T* bufferEnd = buffer() + size(); | 1243 const T* bufferEnd = buffer() + size(); |
| 1244 if (VectorTraits<T>::needsVisiting) { | 1244 if (VectorTraits<T>::needsTracing) { |
| 1245 for (const T* bufferEntry = bufferBegin; bufferEntry != bufferEnd; b
ufferEntry++) | 1245 for (const T* bufferEntry = bufferBegin; bufferEntry != bufferEnd; b
ufferEntry++) |
| 1246 Allocator::template visitWith<T, VectorTraits<T> >(visitor, *con
st_cast<T*>(bufferEntry)); | 1246 Allocator::template adjustAndMark<T, VectorTraits<T> >(visitor,
*const_cast<T*>(bufferEntry)); |
| 1247 } | 1247 } |
| 1248 if (this->hasOutOfLineBuffer()) | 1248 if (this->hasOutOfLineBuffer()) |
| 1249 Allocator::visitHeapPointer(visitor, buffer()); | 1249 Allocator::visitHeapPointer(visitor, buffer()); |
| 1250 } | 1250 } |
| 1251 | 1251 |
| 1252 } // namespace WTF | 1252 } // namespace WTF |
| 1253 | 1253 |
| 1254 using WTF::Vector; | 1254 using WTF::Vector; |
| 1255 | 1255 |
| 1256 #endif // WTF_Vector_h | 1256 #endif // WTF_Vector_h |
| OLD | NEW |