Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(114)

Unified Diff: third_party/WebKit/Source/core/animation/CSSBorderImageLengthBoxInterpolationType.cpp

Issue 2346193002: Split CSSPrimitiveValue into CSSPrimitiveValue and CSSIdentifierValue (Closed)
Patch Set: Rebase please work Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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)

Powered by Google App Engine
This is Rietveld 408576698