Bug 1285619 - Call ResetLayerStateForRecycling() when recycling an image or color layer. r=mstange draft
authorBotond Ballo <botond@mozilla.com>
Fri, 08 Jul 2016 17:25:09 -0400
changeset 392638 72d5f05d209e75335c0c2b3f2a7fde1942d553e7
parent 392637 6ce3db9d7711a833b6385f531548f660fa6997ca
child 526367 3da7a2e4c350dc5a2b12b94b2edbaa3618a47f0b
push id24066
push userbballo@mozilla.com
push dateMon, 25 Jul 2016 21:52:08 +0000
reviewersmstange
bugs1285619
milestone50.0a1
Bug 1285619 - Call ResetLayerStateForRecycling() when recycling an image or color layer. r=mstange MozReview-Commit-ID: GD4NRCoJXWf
layout/base/FrameLayerBuilder.cpp
--- a/layout/base/FrameLayerBuilder.cpp
+++ b/layout/base/FrameLayerBuilder.cpp
@@ -2061,17 +2061,17 @@ ResetLayerStateForRecycling(Layer* aLaye
 
 already_AddRefed<ColorLayer>
 ContainerState::CreateOrRecycleColorLayer(PaintedLayer *aPainted)
 {
   PaintedDisplayItemLayerUserData* data =
       static_cast<PaintedDisplayItemLayerUserData*>(aPainted->GetUserData(&gPaintedDisplayItemLayerUserData));
   RefPtr<ColorLayer> layer = data->mColorLayer;
   if (layer) {
-    layer->SetMaskLayer(nullptr);
+    ResetLayerStateForRecycling(layer);
     layer->ClearExtraDumpInfo();
   } else {
     // Create a new layer
     layer = mManager->CreateColorLayer();
     if (!layer)
       return nullptr;
     // Mark this layer as being used for painting display items
     data->mColorLayer = layer;
@@ -2085,17 +2085,17 @@ ContainerState::CreateOrRecycleColorLaye
 
 already_AddRefed<ImageLayer>
 ContainerState::CreateOrRecycleImageLayer(PaintedLayer *aPainted)
 {
   PaintedDisplayItemLayerUserData* data =
       static_cast<PaintedDisplayItemLayerUserData*>(aPainted->GetUserData(&gPaintedDisplayItemLayerUserData));
   RefPtr<ImageLayer> layer = data->mImageLayer;
   if (layer) {
-    layer->SetMaskLayer(nullptr);
+    ResetLayerStateForRecycling(layer);
     layer->ClearExtraDumpInfo();
   } else {
     // Create a new layer
     layer = mManager->CreateImageLayer();
     if (!layer)
       return nullptr;
     // Mark this layer as being used for painting display items
     data->mImageLayer = layer;