Chromium Code Reviews| 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; |
| } |