fAddedToCache doesn't need to be atomic.
authormtklein <mtklein@chromium.org>
Wed, 25 Feb 2015 16:11:18 +0000 (08:11 -0800)
committerCommit bot <commit-bot@chromium.org>
Wed, 25 Feb 2015 16:11:18 +0000 (08:11 -0800)
It's only ever read or set from non-threadsafe methods.

BUG=skia:

Review URL: https://codereview.chromium.org/960573002

include/core/SkPixelRef.h
src/core/SkPixelRef.cpp

index 01303e5..daf6af1 100644 (file)
@@ -248,7 +248,7 @@ public:
     // 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);
+        fAddedToCache = true;
     }
 
 protected:
@@ -321,7 +321,7 @@ private:
 
     mutable SkAtomic<uint32_t> fGenerationID;
     mutable SkAtomic<bool>     fUniqueGenerationID;
-    SkAtomic<bool>             fAddedToCache;
+    bool fAddedToCache;
 #ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
     const uint32_t fStableID;
 #endif
index 560748c..24ee473 100644 (file)
@@ -100,7 +100,7 @@ SkPixelRef::SkPixelRef(const SkImageInfo& info)
     this->needsNewGenID();
     fIsImmutable = false;
     fPreLocked = false;
-    fAddedToCache.store(false);
+    fAddedToCache = false;
 }
 
 
@@ -116,7 +116,7 @@ SkPixelRef::SkPixelRef(const SkImageInfo& info, SkBaseMutex* mutex)
     this->needsNewGenID();
     fIsImmutable = false;
     fPreLocked = false;
-    fAddedToCache.store(false);
+    fAddedToCache = false;
 }
 
 SkPixelRef::~SkPixelRef() {
@@ -227,10 +227,9 @@ void SkPixelRef::callGenIDChangeListeners() {
             fGenIDChangeListeners[i]->onChange();
         }
 
-        // TODO: SkAtomic could add "old_value = atomic.xchg(new_value)" to make this clearer.
-        if (fAddedToCache.load()) {
+        if (fAddedToCache) {
             SkNotifyBitmapGenIDIsStale(this->getGenerationID());
-            fAddedToCache.store(false);
+            fAddedToCache = false;
         }
     }
     // Listeners get at most one shot, so whether these triggered or not, blow them away.