| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2009 Google Inc. All rights reserved. | 3 * Copyright (C) 2009 Google Inc. All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * | 8 * |
| 9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
| 27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 28 */ | 28 */ |
| 29 | 29 |
| 30 #ifndef WTF_Deque_h | 30 #ifndef WTF_Deque_h |
| 31 #define WTF_Deque_h | 31 #define WTF_Deque_h |
| 32 | 32 |
| 33 // FIXME: Could move what Vector and Deque share into a separate file. | 33 // FIXME: Could move what Vector and Deque share into a separate file. |
| 34 // Deque doesn't actually use Vector. | 34 // Deque doesn't actually use Vector. |
| 35 | 35 |
| 36 #include <iterator> | |
| 37 #include "wtf/PassTraits.h" | 36 #include "wtf/PassTraits.h" |
| 38 #include "wtf/Vector.h" | 37 #include "wtf/Vector.h" |
| 38 #include <iterator> |
| 39 | 39 |
| 40 namespace WTF { | 40 namespace WTF { |
| 41 | 41 |
| 42 template<typename T, size_t inlineCapacity> class DequeIteratorBase; | 42 template<typename T, size_t inlineCapacity> class DequeIteratorBase; |
| 43 template<typename T, size_t inlineCapacity> class DequeIterator; | 43 template<typename T, size_t inlineCapacity> class DequeIterator; |
| 44 template<typename T, size_t inlineCapacity> class DequeConstIterator; | 44 template<typename T, size_t inlineCapacity> class DequeConstIterator; |
| 45 | 45 |
| 46 template<typename T, size_t inlineCapacity = 0> | 46 template<typename T, size_t inlineCapacity = 0> |
| 47 class Deque { | 47 class Deque { |
| 48 WTF_MAKE_FAST_ALLOCATED; | 48 WTF_MAKE_FAST_ALLOCATED; |
| (...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 342 | 342 |
| 343 template<typename T, size_t inlineCapacity> | 343 template<typename T, size_t inlineCapacity> |
| 344 inline void Deque<T, inlineCapacity>::clear() | 344 inline void Deque<T, inlineCapacity>::clear() |
| 345 { | 345 { |
| 346 checkValidity(); | 346 checkValidity(); |
| 347 invalidateIterators(); | 347 invalidateIterators(); |
| 348 destroyAll(); | 348 destroyAll(); |
| 349 m_start = 0; | 349 m_start = 0; |
| 350 m_end = 0; | 350 m_end = 0; |
| 351 m_buffer.deallocateBuffer(m_buffer.buffer()); | 351 m_buffer.deallocateBuffer(m_buffer.buffer()); |
| 352 m_buffer.clearBufferPointer(); |
| 352 checkValidity(); | 353 checkValidity(); |
| 353 } | 354 } |
| 354 | 355 |
| 355 template<typename T, size_t inlineCapacity> | 356 template<typename T, size_t inlineCapacity> |
| 356 template<typename Predicate> | 357 template<typename Predicate> |
| 357 inline DequeIterator<T, inlineCapacity> Deque<T, inlineCapacity>::findIf(Pre
dicate& predicate) | 358 inline DequeIterator<T, inlineCapacity> Deque<T, inlineCapacity>::findIf(Pre
dicate& predicate) |
| 358 { | 359 { |
| 359 iterator end_iterator = end(); | 360 iterator end_iterator = end(); |
| 360 for (iterator it = begin(); it != end_iterator; ++it) { | 361 for (iterator it = begin(); it != end_iterator; ++it) { |
| 361 if (predicate(*it)) | 362 if (predicate(*it)) |
| (...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 638 if (!m_index) | 639 if (!m_index) |
| 639 return &m_deque->m_buffer.buffer()[m_deque->m_buffer.capacity() - 1]
; | 640 return &m_deque->m_buffer.buffer()[m_deque->m_buffer.capacity() - 1]
; |
| 640 return &m_deque->m_buffer.buffer()[m_index - 1]; | 641 return &m_deque->m_buffer.buffer()[m_index - 1]; |
| 641 } | 642 } |
| 642 | 643 |
| 643 } // namespace WTF | 644 } // namespace WTF |
| 644 | 645 |
| 645 using WTF::Deque; | 646 using WTF::Deque; |
| 646 | 647 |
| 647 #endif // WTF_Deque_h | 648 #endif // WTF_Deque_h |
| OLD | NEW |