Backed out changeset b8598fc84f34 (
bug 1351426) for memory leaks
--- a/gfx/layers/composite/ContainerLayerComposite.cpp
+++ b/gfx/layers/composite/ContainerLayerComposite.cpp
@@ -157,18 +157,18 @@ static gfx::IntRect ContainerVisibleRect
}
/* all of the per-layer prepared data we need to maintain */
struct PreparedLayer
{
PreparedLayer(LayerComposite *aLayer,
RenderTargetIntRect aClipRect,
- Maybe<gfx::Polygon>&& aGeometry)
- : mLayer(aLayer), mClipRect(aClipRect), mGeometry(Move(aGeometry)) {}
+ const Maybe<gfx::Polygon>& aGeometry)
+ : mLayer(aLayer), mClipRect(aClipRect), mGeometry(aGeometry) {}
LayerComposite* mLayer;
RenderTargetIntRect mClipRect;
Maybe<Polygon> mGeometry;
};
/* all of the prepared data that we need in RenderLayer() */
struct PreparedData
@@ -187,20 +187,20 @@ ContainerPrepare(ContainerT* aContainer,
aContainer->mPrepared = MakeUnique<PreparedData>();
aContainer->mPrepared->mNeedsSurfaceCopy = false;
const ContainerLayerComposite::SortMode sortMode =
aManager->GetCompositor()->SupportsLayerGeometry()
? ContainerLayerComposite::SortMode::WITH_GEOMETRY
: ContainerLayerComposite::SortMode::WITHOUT_GEOMETRY;
- nsTArray<LayerPolygon> polygons =
+ const nsTArray<LayerPolygon> polygons =
aContainer->SortChildrenBy3DZOrder(sortMode);
- for (LayerPolygon& layer : polygons) {
+ for (const LayerPolygon& layer : polygons) {
LayerComposite* layerToRender =
static_cast<LayerComposite*>(layer.layer->ImplData());
RenderTargetIntRect clipRect =
layerToRender->GetLayer()->CalculateScissorRect(aClipRect);
if (layerToRender->GetLayer()->IsBackfaceHidden()) {
continue;
@@ -219,18 +219,17 @@ ContainerPrepare(ContainerT* aContainer,
CULLING_LOG("Sublayer %p has an empty world clip rect\n", layerToRender->GetLayer());
continue;
}
}
CULLING_LOG("Preparing sublayer %p\n", layerToRender->GetLayer());
layerToRender->Prepare(clipRect);
- aContainer->mPrepared->mLayers.AppendElement(PreparedLayer(layerToRender, clipRect,
- Move(layer.geometry)));
+ aContainer->mPrepared->mLayers.AppendElement(PreparedLayer(layerToRender, clipRect, layer.geometry));
}
CULLING_LOG("Preparing container layer %p\n", aContainer->GetLayer());
/**
* Setup our temporary surface for rendering the contents of this container.
*/