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

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

Issue 1157933002: Oilpan: introduce eager finalization. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Parameterize Heap::poisonHeap() over ObjectsToPoison Created 5 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « Source/platform/heap/HeapAllocator.h ('k') | Source/platform/heap/HeapTest.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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"
(...skipping 15 matching lines...) Expand all
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 {
31 typedef HeapTerminatedArray* PassPtr; 31 typedef HeapTerminatedArray* PassPtr;
32 typedef RawPtr<HeapTerminatedArray> Ptr; 32 typedef RawPtr<HeapTerminatedArray> Ptr;
33 33
34 static PassPtr create(size_t capacity) 34 static PassPtr create(size_t capacity)
35 { 35 {
36 return reinterpret_cast<HeapTerminatedArray*>(Heap::allocate<HeapTer minatedArray>(capacity * sizeof(T))); 36 return reinterpret_cast<HeapTerminatedArray*>(Heap::allocate<HeapTer minatedArray>(capacity * sizeof(T), IsEagerlyFinalizedType<T>::value));
37 } 37 }
38 38
39 static PassPtr resize(PassPtr ptr, size_t capacity) 39 static PassPtr resize(PassPtr ptr, size_t capacity)
40 { 40 {
41 return reinterpret_cast<HeapTerminatedArray*>(Heap::reallocate<HeapT erminatedArray>(ptr, capacity * sizeof(T))); 41 return reinterpret_cast<HeapTerminatedArray*>(Heap::reallocate<HeapT erminatedArray>(ptr, capacity * sizeof(T)));
42 } 42 }
43 }; 43 };
44 44
45 // Prohibit construction. Allocator makes HeapTerminatedArray instances for 45 // Prohibit construction. Allocator makes HeapTerminatedArray instances for
46 // HeapTerminatedArrayBuilder by pointer casting. 46 // HeapTerminatedArrayBuilder by pointer casting.
47 HeapTerminatedArray(); 47 HeapTerminatedArray();
48 48
49 template<typename U, template <typename> class> friend class WTF::Terminated ArrayBuilder; 49 template<typename U, template <typename> class> friend class WTF::Terminated ArrayBuilder;
50 }; 50 };
51 51
52 template<typename T> 52 template<typename T>
53 class TraceEagerlyTrait<HeapTerminatedArray<T>> { 53 class TraceEagerlyTrait<HeapTerminatedArray<T>> {
54 public: 54 public:
55 static const bool value = TraceEagerlyTrait<T>::value; 55 static const bool value = TraceEagerlyTrait<T>::value;
56 }; 56 };
57 57
58 } // namespace blink 58 } // namespace blink
59 59
60 #endif // HeapTerminatedArray_h 60 #endif // HeapTerminatedArray_h
OLDNEW
« no previous file with comments | « Source/platform/heap/HeapAllocator.h ('k') | Source/platform/heap/HeapTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698