Index: Source/core/css/BasicShapeFunctions.cpp |
diff --git a/Source/core/css/BasicShapeFunctions.cpp b/Source/core/css/BasicShapeFunctions.cpp |
index 1ebbecccbf91220eec1f851d643f49815e35793a..2b49710edba5e18dab9c2ee4b4063445ef00779a 100644 |
--- a/Source/core/css/BasicShapeFunctions.cpp |
+++ b/Source/core/css/BasicShapeFunctions.cpp |
@@ -32,22 +32,22 @@ |
#include "core/css/CSSBasicShapes.h" |
#include "core/css/CSSPrimitiveValueMappings.h" |
+#include "core/css/CSSValuePair.h" |
#include "core/css/CSSValuePool.h" |
-#include "core/css/Pair.h" |
#include "core/css/resolver/StyleResolverState.h" |
#include "core/style/BasicShapes.h" |
#include "core/style/ComputedStyle.h" |
namespace blink { |
-static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> valueForCenterCoordinate(CSSValuePool& pool, const ComputedStyle& style, const BasicShapeCenterCoordinate& center, EBoxOrient orientation) |
+static PassRefPtrWillBeRawPtr<CSSValue> valueForCenterCoordinate(CSSValuePool& pool, const ComputedStyle& style, const BasicShapeCenterCoordinate& center, EBoxOrient orientation) |
{ |
if (center.direction() == BasicShapeCenterCoordinate::TopLeft) |
return pool.createValue(center.length(), style); |
CSSValueID keyword = orientation == HORIZONTAL ? CSSValueRight : CSSValueBottom; |
- return pool.createValue(Pair::create(pool.createIdentifierValue(keyword), pool.createValue(center.length(), style), Pair::DropIdenticalValues)); |
+ return CSSValuePair::create(pool.createIdentifierValue(keyword), pool.createValue(center.length(), style), CSSValuePair::DropIdenticalValues); |
} |
static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> basicShapeRadiusToCSSValue(CSSValuePool& pool, const ComputedStyle& style, const BasicShapeRadius& radius) |
@@ -113,10 +113,10 @@ PassRefPtrWillBeRawPtr<CSSValue> valueForBasicShape(const ComputedStyle& style, |
insetValue->setBottom(pool.createValue(inset->bottom(), style)); |
insetValue->setLeft(pool.createValue(inset->left(), style)); |
- insetValue->setTopLeftRadius(CSSPrimitiveValue::create(inset->topLeftRadius(), style)); |
- insetValue->setTopRightRadius(CSSPrimitiveValue::create(inset->topRightRadius(), style)); |
- insetValue->setBottomRightRadius(CSSPrimitiveValue::create(inset->bottomRightRadius(), style)); |
- insetValue->setBottomLeftRadius(CSSPrimitiveValue::create(inset->bottomLeftRadius(), style)); |
+ insetValue->setTopLeftRadius(CSSValuePair::create(inset->topLeftRadius(), style)); |
+ insetValue->setTopRightRadius(CSSValuePair::create(inset->topRightRadius(), style)); |
+ insetValue->setBottomRightRadius(CSSValuePair::create(inset->bottomRightRadius(), style)); |
+ insetValue->setBottomLeftRadius(CSSValuePair::create(inset->bottomLeftRadius(), style)); |
basicShapeValue = insetValue.release(); |
break; |
@@ -135,16 +135,15 @@ static Length convertToLength(const StyleResolverState& state, CSSPrimitiveValue |
return value->convertToLength(state.cssToLengthConversionData()); |
} |
-static LengthSize convertToLengthSize(const StyleResolverState& state, CSSPrimitiveValue* value) |
+static LengthSize convertToLengthSize(const StyleResolverState& state, CSSValuePair* value) |
{ |
if (!value) |
return LengthSize(Length(0, Fixed), Length(0, Fixed)); |
- Pair* pair = value->getPairValue(); |
- return LengthSize(convertToLength(state, pair->first()), convertToLength(state, pair->second())); |
+ return LengthSize(convertToLength(state, toCSSPrimitiveValue(value->first())), convertToLength(state, toCSSPrimitiveValue(value->second()))); |
} |
-static BasicShapeCenterCoordinate convertToCenterCoordinate(const StyleResolverState& state, CSSPrimitiveValue* value) |
+static BasicShapeCenterCoordinate convertToCenterCoordinate(const StyleResolverState& state, CSSValue* value) |
{ |
BasicShapeCenterCoordinate::Direction direction; |
Length offset = Length(0, Fixed); |
@@ -152,13 +151,13 @@ static BasicShapeCenterCoordinate convertToCenterCoordinate(const StyleResolverS |
CSSValueID keyword = CSSValueTop; |
if (!value) { |
keyword = CSSValueCenter; |
- } else if (value->isValueID()) { |
- keyword = value->getValueID(); |
- } else if (Pair* pair = value->getPairValue()) { |
- keyword = pair->first()->getValueID(); |
- offset = convertToLength(state, pair->second()); |
+ } else if (value->isPrimitiveValue() && toCSSPrimitiveValue(value)->isValueID()) { |
+ keyword = toCSSPrimitiveValue(value)->getValueID(); |
+ } else if (value->isValuePair()) { |
+ keyword = toCSSPrimitiveValue(toCSSValuePair(value)->first())->getValueID(); |
+ offset = convertToLength(state, toCSSPrimitiveValue(toCSSValuePair(value)->second())); |
} else { |
- offset = convertToLength(state, value); |
+ offset = convertToLength(state, toCSSPrimitiveValue(value)); |
} |
switch (keyword) { |