Bug 1309081 - Initialize image layer as part of Gecko_EnsureImageLayersLength. r?manishearth
MozReview-Commit-ID: 4MszPafvcKs
--- a/layout/style/ServoBindings.cpp
+++ b/layout/style/ServoBindings.cpp
@@ -786,26 +786,26 @@ Gecko_CopyStyleContentsFrom(nsStyleConte
aContent->AllocateContents(count);
for (uint32_t i = 0; i < count; ++i) {
aContent->ContentAt(i) = aOther->ContentAt(i);
}
}
void
-Gecko_EnsureImageLayersLength(nsStyleImageLayers* aLayers, size_t aLen)
+Gecko_EnsureImageLayersLength(nsStyleImageLayers* aLayers, size_t aLen,
+ nsStyleImageLayers::LayerType aLayerType)
{
- aLayers->mLayers.EnsureLengthAtLeast(aLen);
-}
+ size_t oldLength = aLayers->mLayers.Length();
-void
-Gecko_InitializeImageLayer(nsStyleImageLayers::Layer* aLayer,
- nsStyleImageLayers::LayerType aLayerType)
-{
- aLayer->Initialize(aLayerType);
+ aLayers->mLayers.EnsureLengthAtLeast(aLen);
+
+ for (size_t i = oldLength; i < aLen; ++i) {
+ aLayers->mLayers[i].Initialize(aLayerType);
+ }
}
void
Gecko_ResetStyleCoord(nsStyleUnit* aUnit, nsStyleUnion* aValue)
{
nsStyleCoord::Reset(*aUnit, *aValue);
}
--- a/layout/style/ServoBindings.h
+++ b/layout/style/ServoBindings.h
@@ -290,20 +290,18 @@ void Gecko_EnsureTArrayCapacity(void* ar
void Gecko_ClearPODTArray(void* array, size_t elem_size, size_t elem_align);
// Clear the mContents field in nsStyleContent. This is needed to run the
// destructors, otherwise we'd leak the images (though we still don't support
// those), strings, and whatnot.
void Gecko_ClearStyleContents(nsStyleContent* content);
void Gecko_CopyStyleContentsFrom(nsStyleContent* content, const nsStyleContent* other);
-void Gecko_EnsureImageLayersLength(nsStyleImageLayers* layers, size_t len);
-
-void Gecko_InitializeImageLayer(nsStyleImageLayers::Layer* layer,
- nsStyleImageLayers::LayerType layer_type);
+void Gecko_EnsureImageLayersLength(nsStyleImageLayers* layers, size_t len,
+ nsStyleImageLayers::LayerType layer_type);
// Clean up pointer-based coordinates
void Gecko_ResetStyleCoord(nsStyleUnit* unit, nsStyleUnion* value);
// Set an nsStyleCoord to a computed `calc()` value
void Gecko_SetStyleCoordCalcValue(nsStyleUnit* unit, nsStyleUnion* value, nsStyleCoord::CalcValue calc);
void Gecko_CopyClipPathValueFrom(mozilla::StyleClipPath* dst, const mozilla::StyleClipPath* src);