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

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

Issue 2382653006: Split CSSPrimitiveValue into CSSPrimitiveValue and CSSIdentifierValue (Closed)
Patch Set: Make check-webkit-style happy 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 9623fd6d7f80541785d1b4c15106cd547663a663..05eb541af7e178e634f1963f883ef7dbdf9daefb 100644
--- a/third_party/WebKit/Source/core/animation/CSSBorderImageLengthBoxInterpolationType.cpp
+++ b/third_party/WebKit/Source/core/animation/CSSBorderImageLengthBoxInterpolationType.cpp
@@ -31,10 +31,14 @@ struct SideNumbers {
isNumber[SideLeft] = box.left().isNumber();
}
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 {
@@ -229,16 +233,17 @@ InterpolationValue CSSBorderImageLengthBoxInterpolationType::maybeConvertValue(
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);

Powered by Google App Engine
This is Rietveld 408576698