[tor-commits] [tor-browser/esr24] Bug 994907 - imgDecoderObserver does reference counting on different threads, so should be using thread safe reference counting. r=sfowler, r=ehsan, a=abillings

mikeperry at torproject.org mikeperry at torproject.org
Fri Aug 29 05:26:40 UTC 2014


commit d1a76b53ffd0876efbe77c22b8b181843eebfd57
Author: Milan Sreckovic <milan at mozilla.com>
Date:   Wed May 7 15:31:52 2014 -0400

    Bug 994907 - imgDecoderObserver does reference counting on different threads, so should be using thread safe reference counting. r=sfowler, r=ehsan, a=abillings
---
 image/src/imgDecoderObserver.h |    7 +++++--
 image/src/imgStatusTracker.cpp |    5 +++--
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/image/src/imgDecoderObserver.h b/image/src/imgDecoderObserver.h
index 138f6b0..06d1798 100644
--- a/image/src/imgDecoderObserver.h
+++ b/image/src/imgDecoderObserver.h
@@ -32,10 +32,10 @@
  * loaded data fire before the call returns. If FLAG_SYNC_DECODE is not passed,
  * all, some, or none of the notifications may fire before the call returns.
  */
-class imgDecoderObserver : public mozilla::RefCounted<imgDecoderObserver>
+class imgDecoderObserver
 {
 public:
-  virtual ~imgDecoderObserver() = 0;
+  NS_INLINE_DECL_THREADSAFE_REFCOUNTING(imgDecoderObserver);
 
   /**
    * Load notification.
@@ -124,6 +124,9 @@ public:
    * Called when an image is realized to be in error state.
    */
   virtual void OnError() = 0;
+
+protected:
+  virtual ~imgDecoderObserver() = 0;
 };
 
 // We must define a destructor because derived classes call our destructor from
diff --git a/image/src/imgStatusTracker.cpp b/image/src/imgStatusTracker.cpp
index 06a352b..99c8f48 100644
--- a/image/src/imgStatusTracker.cpp
+++ b/image/src/imgStatusTracker.cpp
@@ -228,8 +228,6 @@ public:
   imgStatusTrackerObserver(imgStatusTracker* aTracker)
   : mTracker(aTracker) {}
 
-  virtual ~imgStatusTrackerObserver() {}
-
   void SetTracker(imgStatusTracker* aTracker) {
     mTracker = aTracker;
   }
@@ -317,6 +315,9 @@ public:
     mTracker->RecordError();
   }
 
+protected:
+  virtual ~imgStatusTrackerObserver() {}
+
 private:
   imgStatusTracker* mTracker;
 };





More information about the tor-commits mailing list