Bug 1319508 - Ensure that we don't leave dangling pointers to CompositorBridgeParent in LayerTreeState instances. r?dvander draft
authorKartikaya Gupta <kgupta@mozilla.com>
Tue, 22 Nov 2016 14:38:37 -0500
changeset 442557 516c21aece1f17fb559427a1de5e093965b506cc
parent 442499 1a3194836cb4c3da6ba3a9742a2d25cf26669b55
child 537822 0649ba027ed00e2c3685a53f67cb90be851f14b2
push id36734
push userkgupta@mozilla.com
push dateTue, 22 Nov 2016 19:39:53 +0000
reviewersdvander
bugs1319508
milestone53.0a1
Bug 1319508 - Ensure that we don't leave dangling pointers to CompositorBridgeParent in LayerTreeState instances. r?dvander MozReview-Commit-ID: 3dxZ35uIQu
gfx/layers/ipc/CompositorBridgeParent.h
--- a/gfx/layers/ipc/CompositorBridgeParent.h
+++ b/gfx/layers/ipc/CompositorBridgeParent.h
@@ -353,17 +353,17 @@ public:
   CreateForContent(Endpoint<PCompositorBridgeParent>&& aEndpoint);
 
   struct LayerTreeState {
     LayerTreeState();
     ~LayerTreeState();
     RefPtr<Layer> mRoot;
     RefPtr<GeckoContentController> mController;
     APZCTreeManagerParent* mApzcTreeManagerParent;
-    CompositorBridgeParent* mParent;
+    RefPtr<CompositorBridgeParent> mParent;
     LayerManagerComposite* mLayerManager;
     // Pointer to the CrossProcessCompositorBridgeParent. Used by APZCs to share
     // their FrameMetrics with the corresponding child process that holds
     // the PCompositorBridgeChild
     CrossProcessCompositorBridgeParent* mCrossProcessParent;
     TargetConfig mTargetConfig;
     APZTestData mApzTestData;
     LayerTransactionParent* mLayerTree;