Index: src/core/SkScaledImageCache.cpp |
diff --git a/src/core/SkScaledImageCache.cpp b/src/core/SkScaledImageCache.cpp |
index 886b1438ca70ec243a69eebde6db3a2a134e6623..8a27445efb48b9aeb6026f52f587ed89daa6d0c6 100644 |
--- a/src/core/SkScaledImageCache.cpp |
+++ b/src/core/SkScaledImageCache.cpp |
@@ -7,7 +7,6 @@ |
#include "SkScaledImageCache.h" |
#include "SkMipMap.h" |
-#include "SkOnce.h" |
#include "SkPixelRef.h" |
#include "SkRect.h" |
@@ -673,18 +672,16 @@ SK_DECLARE_STATIC_MUTEX(gMutex); |
static SkScaledImageCache* gScaledImageCache = NULL; |
static void cleanup_gScaledImageCache() { SkDELETE(gScaledImageCache); } |
-static void create_cache(int) { |
+static SkScaledImageCache* get_cache() { |
+ // gMutex is always held when this is called, so we don't need to be fancy in here. |
bungeman-skia
2014/05/27 16:21:21
We do have places where we have this requirement (
mtklein
2014/05/27 16:23:10
Done.
|
+ if (NULL == gScaledImageCache) { |
#ifdef SK_USE_DISCARDABLE_SCALEDIMAGECACHE |
- gScaledImageCache = SkNEW_ARGS(SkScaledImageCache, (SkDiscardableMemory::Create)); |
+ gScaledImageCache = SkNEW_ARGS(SkScaledImageCache, (SkDiscardableMemory::Create)); |
#else |
- gScaledImageCache = SkNEW_ARGS(SkScaledImageCache, (SK_DEFAULT_IMAGE_CACHE_LIMIT)); |
+ gScaledImageCache = SkNEW_ARGS(SkScaledImageCache, (SK_DEFAULT_IMAGE_CACHE_LIMIT)); |
#endif |
-} |
- |
-static SkScaledImageCache* get_cache() { |
- SK_DECLARE_STATIC_ONCE(once); |
- SkOnce(&once, create_cache, 0, cleanup_gScaledImageCache); |
- SkASSERT(NULL != gScaledImageCache); |
+ atexit(cleanup_gScaledImageCache); |
+ } |
return gScaledImageCache; |
} |