OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2013 Google Inc. | 2 * Copyright 2013 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #include "SkDiscardableMemory.h" | 8 #include "SkDiscardableMemory.h" |
9 #include "SkDiscardableMemoryPool.h" | 9 #include "SkDiscardableMemoryPool.h" |
10 #include "SkImageGenerator.h" | 10 #include "SkImageGenerator.h" |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
171 cur = iter.prev(); | 171 cur = iter.prev(); |
172 } | 172 } |
173 } | 173 } |
174 } | 174 } |
175 | 175 |
176 SkDiscardableMemory* DiscardableMemoryPool::create(size_t bytes) { | 176 SkDiscardableMemory* DiscardableMemoryPool::create(size_t bytes) { |
177 void* addr = sk_malloc_flags(bytes, 0); | 177 void* addr = sk_malloc_flags(bytes, 0); |
178 if (NULL == addr) { | 178 if (NULL == addr) { |
179 return NULL; | 179 return NULL; |
180 } | 180 } |
181 PoolDiscardableMemory* dm = SkNEW_ARGS(PoolDiscardableMemory, | 181 PoolDiscardableMemory* dm = new PoolDiscardableMemory(this, addr, bytes); |
182 (this, addr, bytes)); | |
183 SkAutoMutexAcquire autoMutexAcquire(fMutex); | 182 SkAutoMutexAcquire autoMutexAcquire(fMutex); |
184 fList.addToHead(dm); | 183 fList.addToHead(dm); |
185 fUsed += bytes; | 184 fUsed += bytes; |
186 this->dumpDownTo(fBudget); | 185 this->dumpDownTo(fBudget); |
187 return dm; | 186 return dm; |
188 } | 187 } |
189 | 188 |
190 void DiscardableMemoryPool::free(PoolDiscardableMemory* dm) { | 189 void DiscardableMemoryPool::free(PoolDiscardableMemory* dm) { |
191 SkAutoMutexAcquire autoMutexAcquire(fMutex); | 190 SkAutoMutexAcquire autoMutexAcquire(fMutex); |
192 // This is called by dm's destructor. | 191 // This is called by dm's destructor. |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
250 //////////////////////////////////////////////////////////////////////////////// | 249 //////////////////////////////////////////////////////////////////////////////// |
251 SK_DECLARE_STATIC_MUTEX(gMutex); | 250 SK_DECLARE_STATIC_MUTEX(gMutex); |
252 SkDiscardableMemoryPool* create_global_pool() { | 251 SkDiscardableMemoryPool* create_global_pool() { |
253 return SkDiscardableMemoryPool::Create(SK_DEFAULT_GLOBAL_DISCARDABLE_MEMORY_
POOL_SIZE, | 252 return SkDiscardableMemoryPool::Create(SK_DEFAULT_GLOBAL_DISCARDABLE_MEMORY_
POOL_SIZE, |
254 &gMutex); | 253 &gMutex); |
255 } | 254 } |
256 | 255 |
257 } // namespace | 256 } // namespace |
258 | 257 |
259 SkDiscardableMemoryPool* SkDiscardableMemoryPool::Create(size_t size, SkBaseMute
x* mutex) { | 258 SkDiscardableMemoryPool* SkDiscardableMemoryPool::Create(size_t size, SkBaseMute
x* mutex) { |
260 return SkNEW_ARGS(DiscardableMemoryPool, (size, mutex)); | 259 return new DiscardableMemoryPool(size, mutex); |
261 } | 260 } |
262 | 261 |
263 SK_DECLARE_STATIC_LAZY_PTR(SkDiscardableMemoryPool, global, create_global_pool); | 262 SK_DECLARE_STATIC_LAZY_PTR(SkDiscardableMemoryPool, global, create_global_pool); |
264 | 263 |
265 SkDiscardableMemoryPool* SkGetGlobalDiscardableMemoryPool() { | 264 SkDiscardableMemoryPool* SkGetGlobalDiscardableMemoryPool() { |
266 return global.get(); | 265 return global.get(); |
267 } | 266 } |
268 | 267 |
269 //////////////////////////////////////////////////////////////////////////////// | 268 //////////////////////////////////////////////////////////////////////////////// |
OLD | NEW |