Bug 1420928 - Templatize functions that ensures nsStyleAutoArray length. r?boris
MozReview-Commit-ID: 7MvW9OCBkCP
--- a/layout/style/ServoBindings.cpp
+++ b/layout/style/ServoBindings.cpp
@@ -1797,44 +1797,43 @@ Gecko_EnsureImageLayersLength(nsStyleIma
aLayers->mLayers.EnsureLengthAtLeast(aLen);
for (size_t i = oldLength; i < aLen; ++i) {
aLayers->mLayers[i].Initialize(aLayerType);
}
}
+template <typename StyleType>
+static void
+EnsureStyleAutoArrayLength(StyleType* aArray, size_t aLen)
+{
+ size_t oldLength = aArray->Length();
+
+ aArray->EnsureLengthAtLeast(aLen);
+
+ for (size_t i = oldLength; i < aLen; ++i) {
+ (*aArray)[i].SetInitialValues();
+ }
+}
+
void
Gecko_EnsureStyleAnimationArrayLength(void* aArray, size_t aLen)
{
auto base =
static_cast<nsStyleAutoArray<StyleAnimation>*>(aArray);
-
- size_t oldLength = base->Length();
-
- base->EnsureLengthAtLeast(aLen);
-
- for (size_t i = oldLength; i < aLen; ++i) {
- (*base)[i].SetInitialValues();
- }
+ EnsureStyleAutoArrayLength(base, aLen);
}
void
Gecko_EnsureStyleTransitionArrayLength(void* aArray, size_t aLen)
{
auto base =
reinterpret_cast<nsStyleAutoArray<StyleTransition>*>(aArray);
-
- size_t oldLength = base->Length();
-
- base->EnsureLengthAtLeast(aLen);
-
- for (size_t i = oldLength; i < aLen; ++i) {
- (*base)[i].SetInitialValues();
- }
+ EnsureStyleAutoArrayLength(base, aLen);
}
void
Gecko_ClearWillChange(nsStyleDisplay* aDisplay, size_t aLength)
{
aDisplay->mWillChange.Clear();
aDisplay->mWillChange.SetCapacity(aLength);
}