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 |