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

Unified Diff: Source/core/css/CSSBasicShapes.cpp

Issue 1317523002: Changed Pair to be a CSSValue (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@add_const_to_primvalue
Patch Set: Rebase Created 5 years, 4 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
« no previous file with comments | « Source/core/css/CSSBasicShapes.h ('k') | Source/core/css/CSSCalculationValue.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/css/CSSBasicShapes.cpp
diff --git a/Source/core/css/CSSBasicShapes.cpp b/Source/core/css/CSSBasicShapes.cpp
index 2eecc0e3cc5856ba2f6a1a7f6c03d0da068ba3da..8db9f27afba5fa3683391a586fbed4e9a23ee786 100644
--- a/Source/core/css/CSSBasicShapes.cpp
+++ b/Source/core/css/CSSBasicShapes.cpp
@@ -30,8 +30,8 @@
#include "config.h"
#include "core/css/CSSBasicShapes.h"
+#include "core/css/CSSValuePair.h"
#include "core/css/CSSValuePool.h"
-#include "core/css/Pair.h"
#include "platform/Length.h"
#include "wtf/text/StringBuilder.h"
@@ -63,28 +63,28 @@ static String buildCircleString(const String& radius, const String& centerX, con
return result.toString();
}
-static String serializePositionOffset(const Pair& offset, const Pair& other)
+static String serializePositionOffset(const CSSValuePair& offset, const CSSValuePair& other)
{
- if ((offset.first()->getValueID() == CSSValueLeft && other.first()->getValueID() == CSSValueTop)
- || (offset.first()->getValueID() == CSSValueTop && other.first()->getValueID() == CSSValueLeft))
+ if ((toCSSPrimitiveValue(offset.first())->getValueID() == CSSValueLeft && toCSSPrimitiveValue(other.first())->getValueID() == CSSValueTop)
+ || (toCSSPrimitiveValue(offset.first())->getValueID() == CSSValueTop && toCSSPrimitiveValue(other.first())->getValueID() == CSSValueLeft))
return offset.second()->cssText();
return offset.cssText();
}
-static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> buildSerializablePositionOffset(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> offset, CSSValueID defaultSide)
+static PassRefPtrWillBeRawPtr<CSSValuePair> buildSerializablePositionOffset(PassRefPtrWillBeRawPtr<CSSValue> offset, CSSValueID defaultSide)
{
CSSValueID side = defaultSide;
RefPtrWillBeRawPtr<CSSPrimitiveValue> amount = nullptr;
if (!offset) {
side = CSSValueCenter;
- } else if (offset->isValueID()) {
- side = offset->getValueID();
- } else if (Pair* pair = offset->getPairValue()) {
- side = pair->first()->getValueID();
- amount = pair->second();
+ } else if (offset->isPrimitiveValue() && toCSSPrimitiveValue(offset.get())->isValueID()) {
+ side = toCSSPrimitiveValue(offset.get())->getValueID();
+ } else if (offset->isValuePair()) {
+ side = toCSSPrimitiveValue(toCSSValuePair(offset.get())->first())->getValueID();
+ amount = toCSSPrimitiveValue(toCSSValuePair(offset.get())->second());
} else {
- amount = offset;
+ amount = toCSSPrimitiveValue(offset.get());
}
if (side == CSSValueCenter) {
@@ -102,21 +102,21 @@ static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> buildSerializablePositionOffset
side = defaultSide;
}
- return cssValuePool().createValue(Pair::create(cssValuePool().createValue(side), amount.release(), Pair::KeepIdenticalValues));
+ return CSSValuePair::create(cssValuePool().createValue(side), amount.release(), CSSValuePair::KeepIdenticalValues);
}
String CSSBasicShapeCircle::cssText() const
{
- RefPtrWillBeRawPtr<CSSPrimitiveValue> normalizedCX = buildSerializablePositionOffset(m_centerX, CSSValueLeft);
- RefPtrWillBeRawPtr<CSSPrimitiveValue> normalizedCY = buildSerializablePositionOffset(m_centerY, CSSValueTop);
+ RefPtrWillBeRawPtr<CSSValuePair> normalizedCX = buildSerializablePositionOffset(m_centerX, CSSValueLeft);
+ RefPtrWillBeRawPtr<CSSValuePair> normalizedCY = buildSerializablePositionOffset(m_centerY, CSSValueTop);
String radius;
if (m_radius && m_radius->getValueID() != CSSValueClosestSide)
radius = m_radius->cssText();
return buildCircleString(radius,
- serializePositionOffset(*normalizedCX->getPairValue(), *normalizedCY->getPairValue()),
- serializePositionOffset(*normalizedCY->getPairValue(), *normalizedCX->getPairValue()));
+ serializePositionOffset(*normalizedCX, *normalizedCY),
+ serializePositionOffset(*normalizedCY, *normalizedCX));
}
bool CSSBasicShapeCircle::equals(const CSSBasicShape& shape) const
@@ -171,8 +171,8 @@ static String buildEllipseString(const String& radiusX, const String& radiusY, c
String CSSBasicShapeEllipse::cssText() const
{
- RefPtrWillBeRawPtr<CSSPrimitiveValue> normalizedCX = buildSerializablePositionOffset(m_centerX, CSSValueLeft);
- RefPtrWillBeRawPtr<CSSPrimitiveValue> normalizedCY = buildSerializablePositionOffset(m_centerY, CSSValueTop);
+ RefPtrWillBeRawPtr<CSSValuePair> normalizedCX = buildSerializablePositionOffset(m_centerX, CSSValueLeft);
+ RefPtrWillBeRawPtr<CSSValuePair> normalizedCY = buildSerializablePositionOffset(m_centerY, CSSValueTop);
String radiusX;
String radiusY;
@@ -190,8 +190,8 @@ String CSSBasicShapeEllipse::cssText() const
}
return buildEllipseString(radiusX, radiusY,
- serializePositionOffset(*normalizedCX->getPairValue(), *normalizedCY->getPairValue()),
- serializePositionOffset(*normalizedCY->getPairValue(), *normalizedCX->getPairValue()));
+ serializePositionOffset(*normalizedCX, *normalizedCY),
+ serializePositionOffset(*normalizedCY, *normalizedCX));
}
bool CSSBasicShapeEllipse::equals(const CSSBasicShape& shape) const
@@ -354,15 +354,14 @@ static String buildInsetString(const String& top, const String& right, const Str
return result.toString();
}
-static inline void updateCornerRadiusWidthAndHeight(CSSPrimitiveValue* corner, String& width, String& height)
+static inline void updateCornerRadiusWidthAndHeight(CSSValuePair* cornerRadius, String& width, String& height)
{
- if (!corner)
+ if (!cornerRadius)
return;
- Pair* radius = corner->getPairValue();
- width = radius->first() ? radius->first()->cssText() : String("0");
- if (radius->second())
- height = radius->second()->cssText();
+ width = cornerRadius->first() ? cornerRadius->first()->cssText() : String("0");
+ if (cornerRadius->second())
+ height = cornerRadius->second()->cssText();
}
String CSSBasicShapeInset::cssText() const
« no previous file with comments | « Source/core/css/CSSBasicShapes.h ('k') | Source/core/css/CSSCalculationValue.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698