Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(383)

Side by Side Diff: third_party/WebKit/Source/wtf/Vector.h

Issue 1425533005: Rename DefaultAllocator to PartitionAllocator (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/WebKit/Source/wtf/Partitions.cpp ('k') | third_party/WebKit/Source/wtf/wtf.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Library General Public License for more details. 12 * Library General Public License for more details.
13 * 13 *
14 * You should have received a copy of the GNU Library General Public License 14 * You should have received a copy of the GNU Library General Public License
15 * along with this library; see the file COPYING.LIB. If not, write to 15 * along with this library; see the file COPYING.LIB. If not, write to
16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 * Boston, MA 02110-1301, USA. 17 * Boston, MA 02110-1301, USA.
18 * 18 *
19 */ 19 */
20 20
21 #ifndef WTF_Vector_h 21 #ifndef WTF_Vector_h
22 #define WTF_Vector_h 22 #define WTF_Vector_h
23 23
24 #include "wtf/Alignment.h" 24 #include "wtf/Alignment.h"
25 #include "wtf/ConditionalDestructor.h" 25 #include "wtf/ConditionalDestructor.h"
26 #include "wtf/ContainerAnnotations.h" 26 #include "wtf/ContainerAnnotations.h"
27 #include "wtf/DefaultAllocator.h"
28 #include "wtf/Noncopyable.h" 27 #include "wtf/Noncopyable.h"
29 #include "wtf/NotFound.h" 28 #include "wtf/NotFound.h"
29 #include "wtf/PartitionAllocator.h"
30 #include "wtf/StdLibExtras.h" 30 #include "wtf/StdLibExtras.h"
31 #include "wtf/VectorTraits.h" 31 #include "wtf/VectorTraits.h"
32 #include <algorithm> 32 #include <algorithm>
33 #include <iterator> 33 #include <iterator>
34 #include <string.h> 34 #include <string.h>
35 #include <utility> 35 #include <utility>
36 36
37 // For ASAN builds, disable inline buffers completely as they cause various issu es. 37 // For ASAN builds, disable inline buffers completely as they cause various issu es.
38 #ifdef ANNOTATE_CONTIGUOUS_CONTAINER 38 #ifdef ANNOTATE_CONTIGUOUS_CONTAINER
39 #define INLINE_CAPACITY 0 39 #define INLINE_CAPACITY 0
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
359 : m_buffer(buffer) 359 : m_buffer(buffer)
360 , m_capacity(capacity) 360 , m_capacity(capacity)
361 { 361 {
362 } 362 }
363 363
364 T* m_buffer; 364 T* m_buffer;
365 unsigned m_capacity; 365 unsigned m_capacity;
366 unsigned m_size; 366 unsigned m_size;
367 }; 367 };
368 368
369 template <typename T, size_t inlineCapacity, typename Allocator = DefaultAllocat or> 369 template <typename T, size_t inlineCapacity, typename Allocator = PartitionAlloc ator>
370 class VectorBuffer; 370 class VectorBuffer;
371 371
372 template <typename T, typename Allocator> 372 template <typename T, typename Allocator>
373 class VectorBuffer<T, 0, Allocator> : protected VectorBufferBase<T, false, Alloc ator> { 373 class VectorBuffer<T, 0, Allocator> : protected VectorBufferBase<T, false, Alloc ator> {
374 private: 374 private:
375 typedef VectorBufferBase<T, false, Allocator> Base; 375 typedef VectorBufferBase<T, false, Allocator> Base;
376 public: 376 public:
377 VectorBuffer() 377 VectorBuffer()
378 { 378 {
379 } 379 }
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
607 607
608 static const size_t m_inlineBufferSize = inlineCapacity * sizeof(T); 608 static const size_t m_inlineBufferSize = inlineCapacity * sizeof(T);
609 T* inlineBuffer() { return reinterpret_cast_ptr<T*>(m_inlineBuffer.buffer); } 609 T* inlineBuffer() { return reinterpret_cast_ptr<T*>(m_inlineBuffer.buffer); }
610 const T* inlineBuffer() const { return reinterpret_cast_ptr<const T*>(m_inli neBuffer.buffer); } 610 const T* inlineBuffer() const { return reinterpret_cast_ptr<const T*>(m_inli neBuffer.buffer); }
611 611
612 AlignedBuffer<m_inlineBufferSize, WTF_ALIGN_OF(T)> m_inlineBuffer; 612 AlignedBuffer<m_inlineBufferSize, WTF_ALIGN_OF(T)> m_inlineBuffer;
613 template <typename U, size_t inlineBuffer, typename V> 613 template <typename U, size_t inlineBuffer, typename V>
614 friend class Deque; 614 friend class Deque;
615 }; 615 };
616 616
617 template <typename T, size_t inlineCapacity = 0, typename Allocator = DefaultAll ocator> // Heap-allocated vectors with no inlineCapacity never need a destructor . 617 template <typename T, size_t inlineCapacity = 0, typename Allocator = PartitionA llocator> // Heap-allocated vectors with no inlineCapacity never need a destruct or.
618 class Vector : private VectorBuffer<T, INLINE_CAPACITY, Allocator>, public Condi tionalDestructor<Vector<T, INLINE_CAPACITY, Allocator>, (INLINE_CAPACITY == 0) & & Allocator::isGarbageCollected> { 618 class Vector : private VectorBuffer<T, INLINE_CAPACITY, Allocator>, public Condi tionalDestructor<Vector<T, INLINE_CAPACITY, Allocator>, (INLINE_CAPACITY == 0) & & Allocator::isGarbageCollected> {
619 WTF_USE_ALLOCATOR(Vector, Allocator); 619 WTF_USE_ALLOCATOR(Vector, Allocator);
620 typedef VectorBuffer<T, INLINE_CAPACITY, Allocator> Base; 620 typedef VectorBuffer<T, INLINE_CAPACITY, Allocator> Base;
621 typedef VectorTypeOperations<T> TypeOperations; 621 typedef VectorTypeOperations<T> TypeOperations;
622 622
623 public: 623 public:
624 typedef T ValueType; 624 typedef T ValueType;
625 typedef T value_type; 625 typedef T value_type;
626 626
627 typedef T* iterator; 627 typedef T* iterator;
(...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after
1039 T* oldBuffer = begin(); 1039 T* oldBuffer = begin();
1040 if (!oldBuffer) { 1040 if (!oldBuffer) {
1041 Base::allocateBuffer(newCapacity); 1041 Base::allocateBuffer(newCapacity);
1042 return; 1042 return;
1043 } 1043 }
1044 #ifdef ANNOTATE_CONTIGUOUS_CONTAINER 1044 #ifdef ANNOTATE_CONTIGUOUS_CONTAINER
1045 size_t oldCapacity = capacity(); 1045 size_t oldCapacity = capacity();
1046 #endif 1046 #endif
1047 // The Allocator::isGarbageCollected check is not needed. The check is just 1047 // The Allocator::isGarbageCollected check is not needed. The check is just
1048 // a static hint for a compiler to indicate that Base::expandBuffer returns 1048 // a static hint for a compiler to indicate that Base::expandBuffer returns
1049 // false if Allocator is a DefaultAllocator. 1049 // false if Allocator is a PartitionAllocator.
1050 if (Allocator::isGarbageCollected && Base::expandBuffer(newCapacity)) { 1050 if (Allocator::isGarbageCollected && Base::expandBuffer(newCapacity)) {
1051 ANNOTATE_CHANGE_CAPACITY(begin(), oldCapacity, m_size, capacity()); 1051 ANNOTATE_CHANGE_CAPACITY(begin(), oldCapacity, m_size, capacity());
1052 return; 1052 return;
1053 } 1053 }
1054 T* oldEnd = end(); 1054 T* oldEnd = end();
1055 Base::allocateExpandedBuffer(newCapacity); 1055 Base::allocateExpandedBuffer(newCapacity);
1056 ANNOTATE_NEW_BUFFER(begin(), capacity(), m_size); 1056 ANNOTATE_NEW_BUFFER(begin(), capacity(), m_size);
1057 TypeOperations::move(oldBuffer, oldEnd, begin()); 1057 TypeOperations::move(oldBuffer, oldEnd, begin());
1058 clearUnusedSlots(oldBuffer, oldEnd); 1058 clearUnusedSlots(oldBuffer, oldEnd);
1059 ANNOTATE_DELETE_BUFFER(oldBuffer, oldCapacity, m_size); 1059 ANNOTATE_DELETE_BUFFER(oldBuffer, oldCapacity, m_size);
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
1343 struct NeedsTracing<Vector<T, N>> { 1343 struct NeedsTracing<Vector<T, N>> {
1344 static const bool value = false; 1344 static const bool value = false;
1345 }; 1345 };
1346 #endif 1346 #endif
1347 1347
1348 } // namespace WTF 1348 } // namespace WTF
1349 1349
1350 using WTF::Vector; 1350 using WTF::Vector;
1351 1351
1352 #endif // WTF_Vector_h 1352 #endif // WTF_Vector_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/wtf/Partitions.cpp ('k') | third_party/WebKit/Source/wtf/wtf.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698