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

Side by Side Diff: third_party/WebKit/Source/platform/wtf/allocator/PartitionAllocator.h

Issue 2815663002: Disable collection backing reallocation during pre finalizer (Closed)
Patch Set: fix Created 3 years, 8 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 (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 WTF_PartitionAllocator_h 5 #ifndef WTF_PartitionAllocator_h
6 #define WTF_PartitionAllocator_h 6 #define WTF_PartitionAllocator_h
7 7
8 // This is the allocator that is used for allocations that are not on the 8 // This is the allocator that is used for allocations that are not on the
9 // traced, garbage collected heap. It uses FastMalloc for collections, 9 // traced, garbage collected heap. It uses FastMalloc for collections,
10 // but uses the partition allocator for the backing store of the collections. 10 // but uses the partition allocator for the backing store of the collections.
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 static void Free(void* address) { WTF::Partitions::FastFree(address); } 95 static void Free(void* address) { WTF::Partitions::FastFree(address); }
96 template <typename T> 96 template <typename T>
97 static void* NewArray(size_t bytes) { 97 static void* NewArray(size_t bytes) {
98 return Malloc<void*, void>(bytes, WTF_HEAP_PROFILER_TYPE_NAME(T)); 98 return Malloc<void*, void>(bytes, WTF_HEAP_PROFILER_TYPE_NAME(T));
99 } 99 }
100 static void DeleteArray(void* ptr) { 100 static void DeleteArray(void* ptr) {
101 Free(ptr); // Not the system free, the one from this class. 101 Free(ptr); // Not the system free, the one from this class.
102 } 102 }
103 103
104 static bool IsAllocationAllowed() { return true; } 104 static bool IsAllocationAllowed() { return true; }
105 static bool IsObjectResurrectionForbidden() { return false; }
105 106
106 static void EnterGCForbiddenScope() {} 107 static void EnterGCForbiddenScope() {}
107 static void LeaveGCForbiddenScope() {} 108 static void LeaveGCForbiddenScope() {}
108 109
109 private: 110 private:
110 static void* AllocateBacking(size_t, const char* type_name); 111 static void* AllocateBacking(size_t, const char* type_name);
111 }; 112 };
112 113
113 // Specializations for heap profiling, so type profiling of |char| is possible 114 // Specializations for heap profiling, so type profiling of |char| is possible
114 // even in official builds (because |char| makes up a large portion of the 115 // even in official builds (because |char| makes up a large portion of the
(...skipping 20 matching lines...) Expand all
135 void* operator new(size_t, NotNullTag, void* location) { \ 136 void* operator new(size_t, NotNullTag, void* location) { \
136 DCHECK(location); \ 137 DCHECK(location); \
137 return location; \ 138 return location; \
138 } \ 139 } \
139 void* operator new(size_t, void* location) { return location; } \ 140 void* operator new(size_t, void* location) { return location; } \
140 \ 141 \
141 private: \ 142 private: \
142 typedef int __thisIsHereToForceASemicolonAfterThisMacro 143 typedef int __thisIsHereToForceASemicolonAfterThisMacro
143 144
144 #endif // WTF_PartitionAllocator_h 145 #endif // WTF_PartitionAllocator_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698