Bug 1383212 - Store WebRenderLayerManager by RefPtr instead of raw pointer. r=kats
MozReview-Commit-ID: ArzdU60bIOE
--- a/gfx/layers/wr/WebRenderUserData.cpp
+++ b/gfx/layers/wr/WebRenderUserData.cpp
@@ -4,16 +4,25 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "WebRenderUserData.h"
#include "nsDisplayListInvalidation.h"
namespace mozilla {
namespace layers {
+WebRenderUserData::WebRenderUserData(WebRenderLayerManager* aWRManager)
+ : mWRManager(aWRManager)
+{
+}
+
+WebRenderUserData::~WebRenderUserData()
+{
+}
+
WebRenderBridgeChild*
WebRenderUserData::WrBridge() const
{
return mWRManager->WrBridge();
}
WebRenderImageData::WebRenderImageData(WebRenderLayerManager* aWRManager)
: WebRenderUserData(aWRManager)
--- a/gfx/layers/wr/WebRenderUserData.h
+++ b/gfx/layers/wr/WebRenderUserData.h
@@ -20,36 +20,34 @@ class WebRenderBridgeChild;
class WebRenderImageData;
class WebRenderLayerManager;
class WebRenderUserData
{
public:
NS_INLINE_DECL_REFCOUNTING(WebRenderUserData)
- explicit WebRenderUserData(WebRenderLayerManager* aWRManager)
- : mWRManager(aWRManager)
- { }
+ explicit WebRenderUserData(WebRenderLayerManager* aWRManager);
virtual WebRenderImageData* AsImageData() { return nullptr; }
enum class UserDataType {
eImage,
eFallback,
eAnimation,
};
virtual UserDataType GetType() = 0;
protected:
- virtual ~WebRenderUserData() {}
+ virtual ~WebRenderUserData();
WebRenderBridgeChild* WrBridge() const;
- WebRenderLayerManager* mWRManager;
+ RefPtr<WebRenderLayerManager> mWRManager;
};
class WebRenderImageData : public WebRenderUserData
{
public:
explicit WebRenderImageData(WebRenderLayerManager* aWRManager);
virtual ~WebRenderImageData();