Index: Source/core/css/CSSGradientValue.cpp |
diff --git a/Source/core/css/CSSGradientValue.cpp b/Source/core/css/CSSGradientValue.cpp |
index 0467195962303cc25e9cf1f7a4ddb6c1bf47567e..f22bba76ec1cd4cfdad0cad06e15ed248c0b3df5 100644 |
--- a/Source/core/css/CSSGradientValue.cpp |
+++ b/Source/core/css/CSSGradientValue.cpp |
@@ -87,8 +87,8 @@ PassRefPtr<Image> CSSGradientValue::image(LayoutObject* layoutObject, const IntS |
// Should only ever be called for deprecated gradients. |
static inline bool compareStops(const CSSGradientColorStop& a, const CSSGradientColorStop& b) |
{ |
- double aVal = toCSSPrimitiveValue(*a.m_position).getDoubleValue(); |
- double bVal = toCSSPrimitiveValue(*b.m_position).getDoubleValue(); |
+ double aVal = toCSSPrimitiveValue(a.m_position).getDoubleValue(); |
+ double bVal = toCSSPrimitiveValue(b.m_position).getDoubleValue(); |
return aVal < bVal; |
} |
@@ -209,12 +209,12 @@ void CSSGradientValue::addDeprecatedStops(Gradient* gradient, const LayoutObject |
for (const auto& stop : m_stops) { |
float offset; |
- if (toCSSPrimitiveValue(*stop.m_position).isPercentage()) |
- offset = toCSSPrimitiveValue(*stop.m_position).getFloatValue() / 100; |
+ if (toCSSPrimitiveValue(stop.m_position).isPercentage()) |
+ offset = toCSSPrimitiveValue(stop.m_position).getFloatValue() / 100; |
else |
- offset = toCSSPrimitiveValue(*stop.m_position).getFloatValue(); |
+ offset = toCSSPrimitiveValue(stop.m_position).getFloatValue(); |
- gradient->addColorStop(offset, resolveStopColor(toCSSPrimitiveValue(*stop.m_color), object)); |
+ gradient->addColorStop(offset, resolveStopColor(toCSSPrimitiveValue(stop.m_color), object)); |
} |
} |
@@ -376,12 +376,12 @@ void CSSGradientValue::addStops(Gradient* gradient, const CSSToLengthConversionD |
if (stop.isHint()) |
hasHints = true; |
else |
- stops[i].color = resolveStopColor(toCSSPrimitiveValue(*stop.m_color), object); |
+ stops[i].color = resolveStopColor(toCSSPrimitiveValue(stop.m_color), object); |
if (stop.m_position) { |
- CSSPrimitiveValue stopPosition = toCSSPrimitiveValue(*stop.m_position); |
+ const CSSPrimitiveValue& stopPosition = toCSSPrimitiveValue(stop.m_position); |
if (stopPosition.isPercentage()) { |
- stops[i].offset = toCSSPrimitiveValue(*stop.m_position).getFloatValue() / 100; |
+ stops[i].offset = toCSSPrimitiveValue(stop.m_position).getFloatValue() / 100; |
} else if (stopPosition.isLength() || stopPosition.isCalculatedPercentageWithLength()) { |
float length; |
if (stopPosition.isLength()) |
@@ -490,8 +490,8 @@ static float positionFromValue(CSSPrimitiveValue value, const CSSToLengthConvers |
// In this case the center of the gradient is given relative to an edge in the form of: |
// [ top | bottom | right | left ] [ <percentage> | <length> ]. |
if (Pair* pair = value.getPairValue()) { |
- CSSValueID originID = toCSSPrimitiveValue(*pair->first()).getValueID(); |
- value = toCSSPrimitiveValue(*pair->second()); |
+ CSSValueID originID = pair->first().getValueID(); |
+ value = pair->second(); |
if (originID == CSSValueRight || originID == CSSValueBottom) { |
// For right/bottom, the offset is relative to the far edge. |
@@ -534,10 +534,10 @@ FloatPoint CSSGradientValue::computeEndPoint(NullableCSSValue horizontal, Nullab |
FloatPoint result; |
if (horizontal) |
- result.setX(positionFromValue(toCSSPrimitiveValue(*horizontal), conversionData, size, true)); |
+ result.setX(positionFromValue(toCSSPrimitiveValue(horizontal), conversionData, size, true)); |
if (vertical) |
- result.setY(positionFromValue(toCSSPrimitiveValue(*vertical), conversionData, size, false)); |
+ result.setY(positionFromValue(toCSSPrimitiveValue(vertical), conversionData, size, false)); |
return result; |
} |
@@ -547,13 +547,13 @@ bool CSSGradientValue::isCacheable() const |
for (size_t i = 0; i < m_stops.size(); ++i) { |
const CSSGradientColorStop& stop = m_stops[i]; |
- if (!stop.isHint() && toCSSPrimitiveValue(*stop.m_color).colorIsDerivedFromElement()) |
+ if (!stop.isHint() && toCSSPrimitiveValue(stop.m_color).colorIsDerivedFromElement()) |
return false; |
if (!stop.m_position) |
continue; |
- if (toCSSPrimitiveValue(*stop.m_position).isFontRelativeLength()) |
+ if (toCSSPrimitiveValue(stop.m_position).isFontRelativeLength()) |
return false; |
} |
@@ -564,7 +564,7 @@ bool CSSGradientValue::knownToBeOpaque(const LayoutObject* object) const |
{ |
ASSERT(object); |
for (auto& stop : m_stops) { |
- if (!stop.isHint() && resolveStopColor(toCSSPrimitiveValue(*stop.m_color), *object).hasAlpha()) |
+ if (!stop.isHint() && resolveStopColor(toCSSPrimitiveValue(stop.m_color), *object).hasAlpha()) |
return false; |
} |
return true; |
@@ -634,10 +634,10 @@ String CSSLinearGradientValue::customCSSText() const |
bool wroteSomething = false; |
- if (m_angle && toCSSPrimitiveValue(*m_angle).computeDegrees() != 180) { |
+ if (m_angle && toCSSPrimitiveValue(m_angle).computeDegrees() != 180) { |
result.append(m_angle->cssText()); |
wroteSomething = true; |
- } else if ((m_firstX || m_firstY) && !(!m_firstX && m_firstY && toCSSPrimitiveValue(*m_firstY).getValueID() == CSSValueBottom)) { |
+ } else if ((m_firstX || m_firstY) && !(!m_firstX && m_firstY && toCSSPrimitiveValue(m_firstY).getValueID() == CSSValueBottom)) { |
result.appendLiteral("to "); |
if (m_firstX && m_firstY) { |
result.append(m_firstX->cssText()); |
@@ -746,7 +746,7 @@ PassRefPtr<Gradient> CSSLinearGradientValue::createGradient(const CSSToLengthCon |
FloatPoint firstPoint; |
FloatPoint secondPoint; |
if (m_angle) { |
- float angle = toCSSPrimitiveValue(*m_angle).computeDegrees(); |
+ float angle = toCSSPrimitiveValue(m_angle).computeDegrees(); |
endPointsFromAngle(angle, size, firstPoint, secondPoint, m_gradientType); |
} else { |
switch (m_gradientType) { |
@@ -773,9 +773,9 @@ PassRefPtr<Gradient> CSSLinearGradientValue::createGradient(const CSSToLengthCon |
// "Magic" corners, so the 50% line touches two corners. |
float rise = size.width(); |
float run = size.height(); |
- if (m_firstX && toCSSPrimitiveValue(*m_firstX).getValueID() == CSSValueLeft) |
+ if (m_firstX && toCSSPrimitiveValue(m_firstX).getValueID() == CSSValueLeft) |
run *= -1; |
- if (m_firstY && toCSSPrimitiveValue(*m_firstY).getValueID() == CSSValueBottom) |
+ if (m_firstY && toCSSPrimitiveValue(m_firstY).getValueID() == CSSValueBottom) |
rise *= -1; |
// Compute angle, and flip it back to "bearing angle" degrees. |
float angle = 90 - rad2deg(atan2(rise, run)); |
@@ -849,7 +849,7 @@ inline void CSSGradientValue::appendCSSTextForDeprecatedColorStops(StringBuilder |
for (unsigned i = 0; i < m_stops.size(); i++) { |
const CSSGradientColorStop& stop = m_stops[i]; |
result.appendLiteral(", "); |
- double stopValue = toCSSPrimitiveValue(*stop.m_position).getDoubleValue(); |
+ double stopValue = toCSSPrimitiveValue(stop.m_position).getDoubleValue(); |
if (stopValue == 0) { |
result.appendLiteral("from("); |
result.append(stop.m_color->cssText()); |
@@ -942,12 +942,12 @@ String CSSRadialGradientValue::customCSSText() const |
// The only ambiguous case that needs an explicit shape to be provided |
// is when a sizing keyword is used (or all sizing is omitted). |
- if (m_shape && toCSSPrimitiveValue(*m_shape).getValueID() != CSSValueEllipse && (m_sizingBehavior || (!m_sizingBehavior && !m_endHorizontalSize))) { |
+ if (m_shape && toCSSPrimitiveValue(m_shape).getValueID() != CSSValueEllipse && (m_sizingBehavior || (!m_sizingBehavior && !m_endHorizontalSize))) { |
result.appendLiteral("circle"); |
wroteSomething = true; |
} |
- if (m_sizingBehavior && toCSSPrimitiveValue(*m_sizingBehavior).getValueID() != CSSValueFarthestCorner) { |
+ if (m_sizingBehavior && toCSSPrimitiveValue(m_sizingBehavior).getValueID() != CSSValueFarthestCorner) { |
if (wroteSomething) |
result.append(' '); |
result.append(m_sizingBehavior->cssText()); |
@@ -1102,26 +1102,26 @@ PassRefPtr<Gradient> CSSRadialGradientValue::createGradient(const CSSToLengthCon |
float firstRadius = 0; |
if (m_firstRadius) |
- firstRadius = resolveRadius(toCSSPrimitiveValue(*m_firstRadius), conversionData); |
+ firstRadius = resolveRadius(toCSSPrimitiveValue(m_firstRadius), conversionData); |
FloatSize secondRadius(0, 0); |
if (m_secondRadius) { |
- secondRadius.setWidth(resolveRadius(toCSSPrimitiveValue(*m_secondRadius), conversionData)); |
+ secondRadius.setWidth(resolveRadius(toCSSPrimitiveValue(m_secondRadius), conversionData)); |
secondRadius.setHeight(secondRadius.width()); |
} else if (m_endHorizontalSize) { |
float width = size.width(); |
float height = size.height(); |
- secondRadius.setWidth(resolveRadius(toCSSPrimitiveValue(*m_endHorizontalSize), conversionData, &width)); |
+ secondRadius.setWidth(resolveRadius(toCSSPrimitiveValue(m_endHorizontalSize), conversionData, &width)); |
secondRadius.setHeight(m_endVerticalSize |
- ? resolveRadius(toCSSPrimitiveValue(*m_endVerticalSize), conversionData, &height) |
+ ? resolveRadius(toCSSPrimitiveValue(m_endVerticalSize), conversionData, &height) |
: secondRadius.width()); |
} else { |
- EndShapeType shape = (m_shape && toCSSPrimitiveValue(*m_shape).getValueID() == CSSValueCircle) |
+ EndShapeType shape = (m_shape && toCSSPrimitiveValue(m_shape).getValueID() == CSSValueCircle) |
|| (!m_shape && !m_sizingBehavior && m_endHorizontalSize && !m_endVerticalSize) |
? CircleEndShape |
: EllipseEndShape; |
- switch (m_sizingBehavior ? toCSSPrimitiveValue(*m_sizingBehavior).getValueID() : 0) { |
+ switch (m_sizingBehavior ? toCSSPrimitiveValue(m_sizingBehavior).getValueID() : 0) { |
case CSSValueContain: |
case CSSValueClosestSide: |
secondRadius = radiusToSide(secondPoint, size, shape, |