aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkScaledImageCache.cpp
diff options
context:
space:
mode:
authorGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-05-27 16:28:43 +0000
committerGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-05-27 16:28:43 +0000
commit60c8d24f84105dd341e36a7fc97e25f88ceef309 (patch)
tree06021ce951a82d9bfb5711df1e2b7c50ddf03b13 /src/core/SkScaledImageCache.cpp
parent64f6d154511fc840e9a2db1f17699fd5799f7917 (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.cpp18
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;
}