mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-03-03 23:30:46 +00:00
Bug 869133 - Recycle the ImageLayers created by nsDisplayImage/nsDisplayBackgroundImage instead of recreating them each time. r=roc
This commit is contained in:
parent
25b95a3d76
commit
7d4cb174a7
@ -1880,7 +1880,13 @@ nsDisplayBackgroundImage::BuildLayer(nsDisplayListBuilder* aBuilder,
|
||||
LayerManager* aManager,
|
||||
const ContainerParameters& aParameters)
|
||||
{
|
||||
nsRefPtr<ImageLayer> layer = aManager->CreateImageLayer();
|
||||
nsRefPtr<ImageLayer> layer = static_cast<ImageLayer*>
|
||||
(aManager->GetLayerBuilder()->GetLeafLayerFor(aBuilder, this));
|
||||
if (!layer) {
|
||||
layer = aManager->CreateImageLayer();
|
||||
if (!layer)
|
||||
return nullptr;
|
||||
}
|
||||
layer->SetContainer(mImageContainer);
|
||||
ConfigureLayer(layer, aParameters.mOffset);
|
||||
return layer.forget();
|
||||
|
@ -1307,7 +1307,13 @@ nsDisplayImage::BuildLayer(nsDisplayListBuilder* aBuilder,
|
||||
nsresult rv = mImage->GetImageContainer(aManager, getter_AddRefs(container));
|
||||
NS_ENSURE_SUCCESS(rv, nullptr);
|
||||
|
||||
nsRefPtr<ImageLayer> layer = aManager->CreateImageLayer();
|
||||
nsRefPtr<ImageLayer> layer = static_cast<ImageLayer*>
|
||||
(aManager->GetLayerBuilder()->GetLeafLayerFor(aBuilder, this));
|
||||
if (!layer) {
|
||||
layer = aManager->CreateImageLayer();
|
||||
if (!layer)
|
||||
return nullptr;
|
||||
}
|
||||
layer->SetContainer(container);
|
||||
ConfigureLayer(layer, aParameters.mOffset);
|
||||
return layer.forget();
|
||||
|
Loading…
x
Reference in New Issue
Block a user