| Index: src/lazy/SkDiscardableMemoryPool.cpp
|
| diff --git a/src/lazy/SkDiscardableMemoryPool.cpp b/src/lazy/SkDiscardableMemoryPool.cpp
|
| index 4fb8ae4fe1fbc626453bf6eecd009dac5183b9fa..1d63a0bad710985b7dc2ab127554e77906075753 100644
|
| --- a/src/lazy/SkDiscardableMemoryPool.cpp
|
| +++ b/src/lazy/SkDiscardableMemoryPool.cpp
|
| @@ -7,7 +7,7 @@
|
|
|
| #include "SkDiscardableMemory.h"
|
| #include "SkDiscardableMemoryPool.h"
|
| -#include "SkOnce.h"
|
| +#include "SkLazyPtr.h"
|
| #include "SkTInternalLList.h"
|
| #include "SkThread.h"
|
|
|
| @@ -248,27 +248,20 @@ void DiscardableMemoryPool::dumpPool() {
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
| SK_DECLARE_STATIC_MUTEX(gMutex);
|
| -SkDiscardableMemoryPool* gPool = NULL;
|
| -void create_global_pool(int) {
|
| - SkASSERT(NULL == gPool);
|
| - gPool = SkDiscardableMemoryPool::Create(
|
| - SK_DEFAULT_GLOBAL_DISCARDABLE_MEMORY_POOL_SIZE, &gMutex);
|
| -}
|
| -void cleanup_global_pool() {
|
| - gPool->unref();
|
| +SkDiscardableMemoryPool* create_global_pool() {
|
| + return SkDiscardableMemoryPool::Create(SK_DEFAULT_GLOBAL_DISCARDABLE_MEMORY_POOL_SIZE,
|
| + &gMutex);
|
| }
|
| +
|
| } // namespace
|
|
|
| -SkDiscardableMemoryPool* SkDiscardableMemoryPool::Create(
|
| - size_t size, SkBaseMutex* mutex) {
|
| +SkDiscardableMemoryPool* SkDiscardableMemoryPool::Create(size_t size, SkBaseMutex* mutex) {
|
| return SkNEW_ARGS(DiscardableMemoryPool, (size, mutex));
|
| }
|
|
|
| SkDiscardableMemoryPool* SkGetGlobalDiscardableMemoryPool() {
|
| - SK_DECLARE_STATIC_ONCE(create_pool_once);
|
| - SkOnce(&create_pool_once, create_global_pool, 0, &cleanup_global_pool);
|
| - SkASSERT(NULL != gPool);
|
| - return gPool;
|
| + SK_DECLARE_STATIC_LAZY_PTR(SkDiscardableMemoryPool, global, create_global_pool);
|
| + return global.get();
|
| }
|
|
|
| // defined in SkImageGenerator.h
|
|
|