| Index: third_party/WebKit/Source/core/animation/CSSBorderImageLengthBoxInterpolationType.cpp
|
| diff --git a/third_party/WebKit/Source/core/animation/CSSBorderImageLengthBoxInterpolationType.cpp b/third_party/WebKit/Source/core/animation/CSSBorderImageLengthBoxInterpolationType.cpp
|
| index f768f748a3cf0b65fcdc058ea2e847feb6e6ffc3..4bb7e9d2e8dc4c8b69f4d126c0fec824a7c5db6e 100644
|
| --- a/third_party/WebKit/Source/core/animation/CSSBorderImageLengthBoxInterpolationType.cpp
|
| +++ b/third_party/WebKit/Source/core/animation/CSSBorderImageLengthBoxInterpolationType.cpp
|
| @@ -33,10 +33,10 @@ struct SideNumbers {
|
| }
|
| explicit SideNumbers(const CSSQuadValue& quad)
|
| {
|
| - isNumber[SideTop] = quad.top()->isNumber();
|
| - isNumber[SideRight] = quad.right()->isNumber();
|
| - isNumber[SideBottom] = quad.bottom()->isNumber();
|
| - isNumber[SideLeft] = quad.left()->isNumber();
|
| + isNumber[SideTop] = quad.top()->isPrimitiveValue() && toCSSPrimitiveValue(quad.top())->isNumber();
|
| + isNumber[SideRight] = quad.right()->isPrimitiveValue() && toCSSPrimitiveValue(quad.right())->isNumber();
|
| + isNumber[SideBottom] = quad.bottom()->isPrimitiveValue() && toCSSPrimitiveValue(quad.bottom())->isNumber();
|
| + isNumber[SideLeft] = quad.left()->isPrimitiveValue() && toCSSPrimitiveValue(quad.left())->isNumber();
|
| }
|
|
|
| bool operator==(const SideNumbers& other) const
|
| @@ -195,16 +195,16 @@ InterpolationValue CSSBorderImageLengthBoxInterpolationType::maybeConvertValue(c
|
| const CSSQuadValue& quad = toCSSQuadValue(value);
|
| std::unique_ptr<InterpolableList> list = InterpolableList::create(SideIndexCount);
|
| Vector<RefPtr<NonInterpolableValue>> nonInterpolableValues(SideIndexCount);
|
| - const CSSPrimitiveValue* sides[SideIndexCount] = {};
|
| + const CSSValue* sides[SideIndexCount] = {};
|
| sides[SideTop] = quad.top();
|
| sides[SideRight] = quad.right();
|
| sides[SideBottom] = quad.bottom();
|
| sides[SideLeft] = quad.left();
|
|
|
| for (size_t i = 0; i < SideIndexCount; i++) {
|
| - const CSSPrimitiveValue& side = *sides[i];
|
| - if (side.isNumber()) {
|
| - list->set(i, InterpolableNumber::create(side.getDoubleValue()));
|
| + const CSSValue& side = *sides[i];
|
| + if (side.isPrimitiveValue() && toCSSPrimitiveValue(side).isNumber()) {
|
| + list->set(i, InterpolableNumber::create(toCSSPrimitiveValue(side).getDoubleValue()));
|
| } else {
|
| InterpolationValue convertedSide = LengthInterpolationFunctions::maybeConvertCSSValue(side);
|
| if (!convertedSide)
|
|
|