| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef HEAP_STUBS_H_ | 5 #ifndef HEAP_STUBS_H_ |
| 6 #define HEAP_STUBS_H_ | 6 #define HEAP_STUBS_H_ |
| 7 | 7 |
| 8 #include "stddef.h" | 8 #include "stddef.h" |
| 9 | 9 |
| 10 #define WTF_MAKE_FAST_ALLOCATED \ | 10 #define WTF_MAKE_FAST_ALLOCATED \ |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 61 template<> | 61 template<> |
| 62 class VectorDestructorBase<0, true, true> {}; | 62 class VectorDestructorBase<0, true, true> {}; |
| 63 | 63 |
| 64 template< | 64 template< |
| 65 typename T, | 65 typename T, |
| 66 size_t inlineCapacity = 0, | 66 size_t inlineCapacity = 0, |
| 67 typename Allocator = DefaultAllocator> | 67 typename Allocator = DefaultAllocator> |
| 68 class Vector : public VectorDestructorBase<inlineCapacity, | 68 class Vector : public VectorDestructorBase<inlineCapacity, |
| 69 Allocator::isGarbageCollected, | 69 Allocator::isGarbageCollected, |
| 70 VectorTraits<T>::needsDestruction> { | 70 VectorTraits<T>::needsDestruction> { |
| 71 public: | 71 public: |
| 72 size_t size(); | 72 using iterator = T*; |
| 73 T& operator[](size_t); | 73 using const_iterator = const T*; |
| 74 using reverse_iterator = T*; |
| 75 using const_reverse_iterator = const T*; |
| 76 |
| 77 size_t size(); |
| 78 T& operator[](size_t); |
| 79 }; |
| 80 |
| 81 template <typename T, |
| 82 size_t inlineCapacity = 0, |
| 83 typename Allocator = DefaultAllocator> |
| 84 class Deque { |
| 85 public: |
| 86 using iterator = T*; |
| 87 using const_iterator = const T*; |
| 88 using reverse_iterator = T*; |
| 89 using const_reverse_iterator = const T*; |
| 90 }; |
| 91 |
| 92 template <typename ValueArg, |
| 93 typename HashArg = void, |
| 94 typename TraitsArg = void, |
| 95 typename Allocator = DefaultAllocator> |
| 96 class HashSet { |
| 97 public: |
| 98 typedef ValueArg* iterator; |
| 99 typedef const ValueArg* const_iterator; |
| 100 typedef ValueArg* reverse_iterator; |
| 101 typedef const ValueArg* const_reverse_iterator; |
| 102 }; |
| 103 |
| 104 template <typename ValueArg, |
| 105 typename HashArg = void, |
| 106 typename TraitsArg = void, |
| 107 typename Allocator = DefaultAllocator> |
| 108 class ListHashSet { |
| 109 public: |
| 110 typedef ValueArg* iterator; |
| 111 typedef const ValueArg* const_iterator; |
| 112 typedef ValueArg* reverse_iterator; |
| 113 typedef const ValueArg* const_reverse_iterator; |
| 114 }; |
| 115 |
| 116 template <typename ValueArg, |
| 117 typename HashArg = void, |
| 118 typename TraitsArg = void, |
| 119 typename Allocator = DefaultAllocator> |
| 120 class LinkedHashSet { |
| 121 public: |
| 122 typedef ValueArg* iterator; |
| 123 typedef const ValueArg* const_iterator; |
| 124 typedef ValueArg* reverse_iterator; |
| 125 typedef const ValueArg* const_reverse_iterator; |
| 74 }; | 126 }; |
| 75 | 127 |
| 76 template< | 128 template< |
| 77 typename T, | |
| 78 size_t inlineCapacity = 0, | |
| 79 typename Allocator = DefaultAllocator> | |
| 80 class Deque {}; | |
| 81 | |
| 82 template< | |
| 83 typename ValueArg, | 129 typename ValueArg, |
| 84 typename HashArg = void, | |
| 85 typename TraitsArg = void, | |
| 86 typename Allocator = DefaultAllocator> | |
| 87 class HashSet {}; | |
| 88 | |
| 89 template< | |
| 90 typename ValueArg, | |
| 91 typename HashArg = void, | |
| 92 typename TraitsArg = void, | |
| 93 typename Allocator = DefaultAllocator> | |
| 94 class ListHashSet {}; | |
| 95 | |
| 96 template< | |
| 97 typename ValueArg, | |
| 98 typename HashArg = void, | |
| 99 typename TraitsArg = void, | |
| 100 typename Allocator = DefaultAllocator> | |
| 101 class LinkedHashSet {}; | |
| 102 | |
| 103 template< | |
| 104 typename ValueArg, | |
| 105 typename HashArg = void, | 130 typename HashArg = void, |
| 106 typename TraitsArg = void, | 131 typename TraitsArg = void, |
| 107 typename Allocator = DefaultAllocator> | 132 typename Allocator = DefaultAllocator> |
| 108 class HashCountedSet {}; | 133 class HashCountedSet {}; |
| 109 | 134 |
| 110 template< | 135 template <typename KeyArg, |
| 111 typename KeyArg, | 136 typename MappedArg, |
| 112 typename MappedArg, | 137 typename HashArg = void, |
| 113 typename HashArg = void, | 138 typename KeyTraitsArg = void, |
| 114 typename KeyTraitsArg = void, | 139 typename MappedTraitsArg = void, |
| 115 typename MappedTraitsArg = void, | 140 typename Allocator = DefaultAllocator> |
| 116 typename Allocator = DefaultAllocator> | 141 class HashMap { |
| 117 class HashMap {}; | 142 public: |
| 118 | 143 typedef MappedArg* iterator; |
| 144 typedef const MappedArg* const_iterator; |
| 145 typedef MappedArg* reverse_iterator; |
| 146 typedef const MappedArg* const_reverse_iterator; |
| 147 }; |
| 119 } | 148 } |
| 120 | 149 |
| 121 // Empty namespace declaration to exercise internal | 150 // Empty namespace declaration to exercise internal |
| 122 // handling of namespace equality. | 151 // handling of namespace equality. |
| 123 namespace std { | 152 namespace std { |
| 124 /* empty */ | 153 /* empty */ |
| 125 } | 154 } |
| 126 | 155 |
| 127 namespace std { | 156 namespace std { |
| 128 | 157 |
| (...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 286 namespace WTF { | 315 namespace WTF { |
| 287 | 316 |
| 288 template<typename T> | 317 template<typename T> |
| 289 struct VectorTraits<blink::Member<T> > { | 318 struct VectorTraits<blink::Member<T> > { |
| 290 static const bool needsDestruction = false; | 319 static const bool needsDestruction = false; |
| 291 }; | 320 }; |
| 292 | 321 |
| 293 } | 322 } |
| 294 | 323 |
| 295 #endif | 324 #endif |
| OLD | NEW |