OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
66 struct VectorBackingHelper { | 66 struct VectorBackingHelper { |
67 typedef void Type; | 67 typedef void Type; |
68 }; | 68 }; |
69 template<typename T> | 69 template<typename T> |
70 struct HashTableBackingHelper { | 70 struct HashTableBackingHelper { |
71 typedef void Type; | 71 typedef void Type; |
72 }; | 72 }; |
73 template <typename Return, typename Metadata> | 73 template <typename Return, typename Metadata> |
74 static Return backingMalloc(size_t size) | 74 static Return backingMalloc(size_t size) |
75 { | 75 { |
76 return reinterpret_cast<Return>(partitionAllocGeneric(Partitions::getBuf
ferPartition(), size)); | 76 return reinterpret_cast<Return>(backingAllocate(size)); |
77 } | 77 } |
78 template <typename Return, typename Metadata> | 78 template <typename Return, typename Metadata> |
79 static Return zeroedBackingMalloc(size_t size) | 79 static Return zeroedBackingMalloc(size_t size) |
80 { | 80 { |
81 void* result = partitionAllocGeneric(Partitions::getBufferPartition(), s
ize); | 81 void* result = backingAllocate(size); |
82 memset(result, 0, size); | 82 memset(result, 0, size); |
83 return reinterpret_cast<Return>(result); | 83 return reinterpret_cast<Return>(result); |
84 } | 84 } |
85 template <typename Return, typename Metadata> | 85 template <typename Return, typename Metadata> |
86 static Return malloc(size_t size) | 86 static Return malloc(size_t size) |
87 { | 87 { |
88 return reinterpret_cast<Return>(fastMalloc(size)); | 88 return reinterpret_cast<Return>(fastMalloc(size)); |
89 } | 89 } |
90 static void backingFree(void* address) | 90 WTF_EXPORT static void backingFree(void* address); |
91 { | |
92 partitionFreeGeneric(Partitions::getBufferPartition(), address); | |
93 } | |
94 static void free(void* address) | 91 static void free(void* address) |
95 { | 92 { |
96 fastFree(address); | 93 fastFree(address); |
97 } | 94 } |
98 template<typename T> | 95 template<typename T> |
99 static void* newArray(size_t bytes) | 96 static void* newArray(size_t bytes) |
100 { | 97 { |
101 return malloc<void*, void>(bytes); | 98 return malloc<void*, void>(bytes); |
102 } | 99 } |
103 static void | 100 static void |
(...skipping 21 matching lines...) Expand all Loading... |
125 template<typename T> | 122 template<typename T> |
126 struct OtherType { | 123 struct OtherType { |
127 typedef T* Type; | 124 typedef T* Type; |
128 }; | 125 }; |
129 | 126 |
130 template<typename T> | 127 template<typename T> |
131 static T& getOther(T* other) | 128 static T& getOther(T* other) |
132 { | 129 { |
133 return *other; | 130 return *other; |
134 } | 131 } |
| 132 |
| 133 private: |
| 134 WTF_EXPORT static void* backingAllocate(size_t); |
135 }; | 135 }; |
136 | 136 |
137 // The Windows compiler seems to be very eager to instantiate things it won't | 137 // The Windows compiler seems to be very eager to instantiate things it won't |
138 // need, so unless we have this class we get compile errors. | 138 // need, so unless we have this class we get compile errors. |
139 class DefaultAllocatorDummyVisitor { | 139 class DefaultAllocatorDummyVisitor { |
140 public: | 140 public: |
141 template<typename T> inline bool isAlive(T obj) | 141 template<typename T> inline bool isAlive(T obj) |
142 { | 142 { |
143 ASSERT_NOT_REACHED(); | 143 ASSERT_NOT_REACHED(); |
144 return false; | 144 return false; |
(...skipping 15 matching lines...) Expand all Loading... |
160 { \ | 160 { \ |
161 ASSERT(location); \ | 161 ASSERT(location); \ |
162 return location; \ | 162 return location; \ |
163 } \ | 163 } \ |
164 private: \ | 164 private: \ |
165 typedef int __thisIsHereToForceASemicolonAfterThisMacro | 165 typedef int __thisIsHereToForceASemicolonAfterThisMacro |
166 | 166 |
167 using WTF::DefaultAllocator; | 167 using WTF::DefaultAllocator; |
168 | 168 |
169 #endif // WTF_DefaultAllocator_h | 169 #endif // WTF_DefaultAllocator_h |
OLD | NEW |