diff options
author | 2014-05-27 16:28:43 +0000 | |
---|---|---|
committer | 2014-05-27 16:28:43 +0000 | |
commit | 60c8d24f84105dd341e36a7fc97e25f88ceef309 (patch) | |
tree | 06021ce951a82d9bfb5711df1e2b7c50ddf03b13 /src/core/SkScaledImageCache.cpp | |
parent | 64f6d154511fc840e9a2db1f17699fd5799f7917 (diff) |
Remove some unnecessary uses of SkOnce.
- gm/imagefiltersgraph.cpp can just use a global registrar
- SkScaledImageCache always accesses its global under a lock
BUG=skia:
R=bungeman@google.com, mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/297273006
git-svn-id: http://skia.googlecode.com/svn/trunk@14897 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/core/SkScaledImageCache.cpp')
-rw-r--r-- | src/core/SkScaledImageCache.cpp | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/core/SkScaledImageCache.cpp b/src/core/SkScaledImageCache.cpp index 886b1438ca..a6bffd899f 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,17 @@ SK_DECLARE_STATIC_MUTEX(gMutex); static SkScaledImageCache* gScaledImageCache = NULL; static void cleanup_gScaledImageCache() { SkDELETE(gScaledImageCache); } -static void create_cache(int) { +/** Must hold gMutex when calling. */ +static SkScaledImageCache* get_cache() { + // gMutex is always held when this is called, so we don't need to be fancy in here. + 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; } |