Bug 1405518: Make SyncObjectClient atomically refcounted as it may be accessed both on the paint and the main thread. r=dvander draft
authorBas Schouten <bschouten@mozilla.com>
Thu, 05 Oct 2017 13:41:40 +0200
changeset 675527 c14854b47401acdd239208ab37ca2bc467a4e96b
parent 674843 0d7a9ad2f02b3cd9f4cbab4ac794f2bd7a96a118
child 734620 bf078a6ee549ffe13d396a34386bab469a8e22a8
push id83149
push userbschouten@mozilla.com
push dateThu, 05 Oct 2017 11:42:34 +0000
reviewersdvander
bugs1405518
milestone58.0a1
Bug 1405518: Make SyncObjectClient atomically refcounted as it may be accessed both on the paint and the main thread. r=dvander MozReview-Commit-ID: K0QvlGlXIIc
gfx/layers/SyncObject.h
--- a/gfx/layers/SyncObject.h
+++ b/gfx/layers/SyncObject.h
@@ -36,17 +36,17 @@ public:
   virtual SyncHandle GetSyncHandle() = 0;
 
   virtual bool Synchronize() = 0;
 
 protected:
   SyncObjectHost() { }
 };
 
-class SyncObjectClient : public RefCounted<SyncObjectClient>
+class SyncObjectClient : public external::AtomicRefCounted<SyncObjectClient>
 {
 public:
   MOZ_DECLARE_REFCOUNTED_VIRTUAL_TYPENAME(SyncObjectClient)
   virtual ~SyncObjectClient() { }
 
   static already_AddRefed<SyncObjectClient> CreateSyncObjectClient(SyncHandle aHandle
 #ifdef XP_WIN
                                                                      , ID3D11Device* aDevice = nullptr