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

Side by Side Diff: third_party/WebKit/Source/platform/heap/HeapTerminatedArray.h

Issue 1609943003: Make platform/heap to use USING_FAST_MALLOC. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed compile error Created 4 years, 11 months 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
OLDNEW
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 HeapTerminatedArray_h 5 #ifndef HeapTerminatedArray_h
6 #define HeapTerminatedArray_h 6 #define HeapTerminatedArray_h
7 7
8 #include "platform/heap/Heap.h" 8 #include "platform/heap/Heap.h"
9 #include "wtf/TerminatedArray.h" 9 #include "wtf/TerminatedArray.h"
10 #include "wtf/TerminatedArrayBuilder.h" 10 #include "wtf/TerminatedArrayBuilder.h"
11 11
12 namespace blink { 12 namespace blink {
13 13
14 template<typename T> 14 template<typename T>
15 class HeapTerminatedArray : public TerminatedArray<T> { 15 class HeapTerminatedArray : public TerminatedArray<T> {
16 DISALLOW_NEW(); 16 DISALLOW_NEW();
17 public: 17 public:
18 using TerminatedArray<T>::begin; 18 using TerminatedArray<T>::begin;
19 using TerminatedArray<T>::end; 19 using TerminatedArray<T>::end;
20 20
21 DEFINE_INLINE_TRACE() 21 DEFINE_INLINE_TRACE()
22 { 22 {
23 for (typename TerminatedArray<T>::iterator it = begin(); it != end(); ++ it) 23 for (typename TerminatedArray<T>::iterator it = begin(); it != end(); ++ it)
24 visitor->trace(*it); 24 visitor->trace(*it);
25 } 25 }
26 26
27 private: 27 private:
28 // Allocator describes how HeapTerminatedArrayBuilder should create new inta nces 28 // Allocator describes how HeapTerminatedArrayBuilder should create new inta nces
29 // of TerminateArray and manage their lifetimes. 29 // of TerminateArray and manage their lifetimes.
30 struct Allocator { 30 struct Allocator final {
31 STATIC_ONLY(Allocator);
31 typedef HeapTerminatedArray* PassPtr; 32 typedef HeapTerminatedArray* PassPtr;
32 typedef RawPtr<HeapTerminatedArray> Ptr; 33 typedef RawPtr<HeapTerminatedArray> Ptr;
33 34
34 static PassPtr create(size_t capacity) 35 static PassPtr create(size_t capacity)
35 { 36 {
36 return reinterpret_cast<HeapTerminatedArray*>(Heap::allocate<HeapTer minatedArray>(capacity * sizeof(T), IsEagerlyFinalizedType<T>::value)); 37 return reinterpret_cast<HeapTerminatedArray*>(Heap::allocate<HeapTer minatedArray>(capacity * sizeof(T), IsEagerlyFinalizedType<T>::value));
37 } 38 }
38 39
39 static PassPtr resize(PassPtr ptr, size_t capacity) 40 static PassPtr resize(PassPtr ptr, size_t capacity)
40 { 41 {
(...skipping 10 matching lines...) Expand all
51 52
52 template<typename T> 53 template<typename T>
53 class TraceEagerlyTrait<HeapTerminatedArray<T>> { 54 class TraceEagerlyTrait<HeapTerminatedArray<T>> {
54 public: 55 public:
55 static const bool value = TraceEagerlyTrait<T>::value; 56 static const bool value = TraceEagerlyTrait<T>::value;
56 }; 57 };
57 58
58 } // namespace blink 59 } // namespace blink
59 60
60 #endif // HeapTerminatedArray_h 61 #endif // HeapTerminatedArray_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698