diff options
author | reed <reed@google.com> | 2015-02-25 07:17:11 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-02-25 07:17:11 -0800 |
commit | 83787d0ff0a2b2f839a4a3ce6dadd033f83fe643 (patch) | |
tree | abc0791b564824241daf23640ba04f4513bbb5b6 /include/core/SkPixelRef.h | |
parent | 8673765ab59beec47d0ec8d057ff218e550e658f (diff) |
only notify bitmaps that have been added to the cache
old code:
- calls=2677 hit-rate=3.51139%
new code:
- calls=94 hit-rate=97.8723%
BUG=skia:
Review URL: https://codereview.chromium.org/960563002
Diffstat (limited to 'include/core/SkPixelRef.h')
-rw-r--r-- | include/core/SkPixelRef.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/include/core/SkPixelRef.h b/include/core/SkPixelRef.h index 5027a35329..01303e5be5 100644 --- a/include/core/SkPixelRef.h +++ b/include/core/SkPixelRef.h @@ -245,6 +245,12 @@ public: // Takes ownership of listener. void addGenIDChangeListener(GenIDChangeListener* listener); + // Call when this pixelref is part of the key to a resourcecache entry. This allows the cache + // to know automatically those entries can be purged when this pixelref is changed or deleted. + void notifyAddedToCache() { + fAddedToCache.store(true); + } + protected: /** * On success, returns true and fills out the LockRec for the pixels. On @@ -315,6 +321,7 @@ private: mutable SkAtomic<uint32_t> fGenerationID; mutable SkAtomic<bool> fUniqueGenerationID; + SkAtomic<bool> fAddedToCache; #ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK const uint32_t fStableID; #endif |