Index: Source/core/css/parser/CSSPropertyParser.cpp |
diff --git a/Source/core/css/parser/CSSPropertyParser.cpp b/Source/core/css/parser/CSSPropertyParser.cpp |
index 113724f4d307a3fba6222cdf0442e502f3397cf4..abd8a2eacae5c07c7bd670b8f8a4dcd07e448ae9 100644 |
--- a/Source/core/css/parser/CSSPropertyParser.cpp |
+++ b/Source/core/css/parser/CSSPropertyParser.cpp |
@@ -75,7 +75,7 @@ static bool equalIgnoringCase(const CSSParserString& a, const char (&b)[N]) |
return a.is8Bit() ? WTF::equalIgnoringCase(b, a.characters8(), length) : WTF::equalIgnoringCase(b, a.characters16(), length); |
} |
-static CSSPrimitiveValue createPrimitiveValuePair(CSSPrimitiveValue first, CSSPrimitiveValue second, Pair::IdenticalValuesPolicy identicalValuesPolicy = Pair::DropIdenticalValues) |
+static CSSPrimitiveValue createPrimitiveValuePair(const CSSPrimitiveValue& first, const CSSPrimitiveValue& second, Pair::IdenticalValuesPolicy identicalValuesPolicy = Pair::DropIdenticalValues) |
{ |
return cssValuePool().createValue(Pair::create(first, second, identicalValuesPolicy)); |
} |
@@ -965,7 +965,7 @@ bool CSSPropertyParser::parseValue(CSSPropertyID unresolvedProperty, bool import |
} else |
parsedValue2 = parsedValue1; |
- addProperty(propId, createPrimitiveValuePair(parsedValue1, toCSSPrimitiveValue(*parsedValue2)), important); |
+ addProperty(propId, createPrimitiveValuePair(parsedValue1, toCSSPrimitiveValue(parsedValue2)), important); |
return true; |
} |
case CSSPropertyTabSize: |
@@ -1750,7 +1750,7 @@ static bool isValidTransitionPropertyList(CSSValueList* value) |
// FIXME: Shorthand parsing shouldn't add initial to the list since it won't round-trip |
if (property.isInitialValue()) |
continue; |
- CSSPrimitiveValue primitiveValue = toCSSPrimitiveValue(property); |
+ const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(property); |
if (primitiveValue.isValueID() && primitiveValue.getValueID() == CSSValueNone) |
return false; |
} |
@@ -2497,7 +2497,7 @@ void CSSPropertyParser::parse4ValuesFillPosition(CSSParserValueList* valueList, |
return; |
CSSValueID ident1 = parsedValue1.getValueID(); |
- CSSValueID ident3 = toCSSPrimitiveValue(*value3).getValueID(); |
+ CSSValueID ident3 = toCSSPrimitiveValue(value3).getValueID(); |
if (ident1 == CSSValueCenter) |
return; |
@@ -2520,11 +2520,11 @@ void CSSPropertyParser::parse4ValuesFillPosition(CSSParserValueList* valueList, |
return; |
// 4th value must be a length or a percentage. |
- if (isFillPositionKeyword(toCSSPrimitiveValue(*value4).getValueID())) |
+ if (isFillPositionKeyword(toCSSPrimitiveValue(value4).getValueID())) |
return; |
value1 = createPrimitiveValuePair(parsedValue1, parsedValue2); |
- value2 = createPrimitiveValuePair(toCSSPrimitiveValue(*value3), toCSSPrimitiveValue(*value4)); |
+ value2 = createPrimitiveValuePair(toCSSPrimitiveValue(value3), toCSSPrimitiveValue(value4)); |
if (ident1 == CSSValueTop || ident1 == CSSValueBottom) |
value1.swap(value2); |
@@ -2546,7 +2546,7 @@ void CSSPropertyParser::parse3ValuesFillPosition(CSSParserValueList* valueList, |
bool swapNeeded = false; |
CSSValueID ident1 = parsedValue1.getValueID(); |
CSSValueID ident2 = parsedValue2.getValueID(); |
- CSSValueID ident3 = toCSSPrimitiveValue(*value3).getValueID(); |
+ CSSValueID ident3 = toCSSPrimitiveValue(value3).getValueID(); |
CSSValueID firstPositionKeyword; |
CSSValueID secondPositionKeyword; |
@@ -2566,7 +2566,7 @@ void CSSPropertyParser::parse3ValuesFillPosition(CSSParserValueList* valueList, |
swapNeeded = true; |
} |
value1 = createPrimitiveValuePair(cssValuePool().createIdentifierValue(firstPositionKeyword), cssValuePool().createValue(50, CSSPrimitiveValue::CSS_PERCENTAGE)); |
- value2 = createPrimitiveValuePair(parsedValue2, toCSSPrimitiveValue(*value3)); |
+ value2 = createPrimitiveValuePair(parsedValue2, toCSSPrimitiveValue(value3)); |
} else if (ident3 == CSSValueCenter) { |
if (isFillPositionKeyword(ident2)) |
return; |
@@ -2605,18 +2605,18 @@ void CSSPropertyParser::parse3ValuesFillPosition(CSSParserValueList* valueList, |
if (isValueConflictingWithCurrentEdge(ident1, secondPositionKeyword)) |
return; |
- value1 = createPrimitiveValuePair(parsedValue1, toCSSPrimitiveValue(*firstPositionValue)); |
- value2 = createPrimitiveValuePair(cssValuePool().createIdentifierValue(secondPositionKeyword), toCSSPrimitiveValue(*secondPositionValue)); |
+ value1 = createPrimitiveValuePair(parsedValue1, toCSSPrimitiveValue(firstPositionValue)); |
+ value2 = createPrimitiveValuePair(cssValuePool().createIdentifierValue(secondPositionKeyword), toCSSPrimitiveValue(secondPositionValue)); |
} |
if (ident1 == CSSValueTop || ident1 == CSSValueBottom || swapNeeded) |
value1.swap(value2); |
#if ENABLE(ASSERT) |
- CSSPrimitiveValue first = toCSSPrimitiveValue(*value1); |
- CSSPrimitiveValue second = toCSSPrimitiveValue(*value2); |
- ident1 = toCSSPrimitiveValue(*first.getPairValue()->first()).getValueID(); |
- ident2 = toCSSPrimitiveValue(*second.getPairValue()->first()).getValueID(); |
+ const CSSPrimitiveValue& first = toCSSPrimitiveValue(value1); |
+ const CSSPrimitiveValue& second = toCSSPrimitiveValue(value2); |
+ ident1 = first.getPairValue()->first().getValueID(); |
+ ident2 = second.getPairValue()->first().getValueID(); |
ASSERT(ident1 == CSSValueLeft || ident1 == CSSValueRight); |
ASSERT(ident2 == CSSValueBottom || ident2 == CSSValueTop); |
#endif |
@@ -2674,8 +2674,8 @@ void CSSPropertyParser::parseFillPosition(CSSParserValueList* valueList, Nullabl |
return; |
} |
- CSSPrimitiveValue parsedValue1 = toCSSPrimitiveValue(*value1); |
- CSSPrimitiveValue parsedValue2 = toCSSPrimitiveValue(*value2); |
+ CSSPrimitiveValue parsedValue1 = toCSSPrimitiveValue(value1); |
+ CSSPrimitiveValue parsedValue2 = toCSSPrimitiveValue(value2); |
value1 = nullptr; |
value2 = nullptr; |
@@ -2770,7 +2770,7 @@ void CSSPropertyParser::parseFillRepeat(NullableCSSValue& value1, NullableCSSVal |
// If only one value was specified, value2 is the same as value1. |
m_implicitShorthand = true; |
- value2 = cssValuePool().createIdentifierValue(toCSSPrimitiveValue(*value1).getValueID()); |
+ value2 = cssValuePool().createIdentifierValue(toCSSPrimitiveValue(value1).getValueID()); |
} |
NullableCSSValue CSSPropertyParser::parseFillSize(CSSPropertyID unresolvedProperty) |
@@ -2811,7 +2811,7 @@ NullableCSSValue CSSPropertyParser::parseFillSize(CSSPropertyID unresolvedProper |
if (!parsedValue2) |
return parsedValue1; |
- return createPrimitiveValuePair(toCSSPrimitiveValue(*parsedValue1), toCSSPrimitiveValue(*parsedValue2), Pair::KeepIdenticalValues); |
+ return createPrimitiveValuePair(toCSSPrimitiveValue(parsedValue1), toCSSPrimitiveValue(parsedValue2), Pair::KeepIdenticalValues); |
} |
bool CSSPropertyParser::parseFillProperty(CSSPropertyID propId, CSSPropertyID& propId1, CSSPropertyID& propId2, |
@@ -3333,12 +3333,12 @@ NullableCSSValue CSSPropertyParser::parseGridPosition() |
return nullptr; |
// Negative numbers are not allowed for span (but are for <integer>). |
- if (hasSeenSpanKeyword && numericValue && toCSSPrimitiveValue(*numericValue).getIntValue() < 0) |
+ if (hasSeenSpanKeyword && numericValue && toCSSPrimitiveValue(numericValue).getIntValue() < 0) |
return nullptr; |
// For the <custom-ident> case. |
if (gridLineName && !numericValue && !hasSeenSpanKeyword) |
- return cssValuePool().createValue(toCSSPrimitiveValue(*gridLineName).getStringValue(), CSSPrimitiveValue::CSS_CUSTOM_IDENT); |
+ return cssValuePool().createValue(toCSSPrimitiveValue(gridLineName).getStringValue(), CSSPrimitiveValue::CSS_CUSTOM_IDENT); |
RefPtrWillBeRawPtr<CSSValueList> values = CSSValueList::createSpaceSeparated(); |
if (hasSeenSpanKeyword) |
@@ -4009,7 +4009,7 @@ NullableCSSValue CSSPropertyParser::parseCounterContent(CSSParserValueList* args |
listStyle = cssValuePool().createIdentifierValue(listStyleID); |
} |
- return cssValuePool().createValue(Counter::create(identifier, toCSSPrimitiveValue(*listStyle), toCSSPrimitiveValue(*separator))); |
+ return cssValuePool().createValue(Counter::create(identifier, toCSSPrimitiveValue(listStyle), toCSSPrimitiveValue(separator))); |
} |
NullableCSSValue CSSPropertyParser::parseClipShape() |
@@ -4126,10 +4126,10 @@ PassRefPtrWillBeRawPtr<CSSBasicShape> CSSPropertyParser::parseInsetRoundedCorner |
} else { |
completeBorderRadii(radii[1]); |
} |
- shape->setTopLeftRadius(createPrimitiveValuePair(toCSSPrimitiveValue(*radii[0][0]), toCSSPrimitiveValue(*radii[1][0]))); |
- shape->setTopRightRadius(createPrimitiveValuePair(toCSSPrimitiveValue(*radii[0][1]), toCSSPrimitiveValue(*radii[1][1]))); |
- shape->setBottomRightRadius(createPrimitiveValuePair(toCSSPrimitiveValue(*radii[0][2]), toCSSPrimitiveValue(*radii[1][2]))); |
- shape->setBottomLeftRadius(createPrimitiveValuePair(toCSSPrimitiveValue(*radii[0][3]), toCSSPrimitiveValue(*radii[1][3]))); |
+ shape->setTopLeftRadius(createPrimitiveValuePair(toCSSPrimitiveValue(radii[0][0]), toCSSPrimitiveValue(radii[1][0]))); |
+ shape->setTopRightRadius(createPrimitiveValuePair(toCSSPrimitiveValue(radii[0][1]), toCSSPrimitiveValue(radii[1][1]))); |
+ shape->setBottomRightRadius(createPrimitiveValuePair(toCSSPrimitiveValue(radii[0][2]), toCSSPrimitiveValue(radii[1][2]))); |
+ shape->setBottomLeftRadius(createPrimitiveValuePair(toCSSPrimitiveValue(radii[0][3]), toCSSPrimitiveValue(radii[1][3]))); |
return shape; |
} |
@@ -4332,7 +4332,7 @@ bool CSSPropertyParser::parseItemPositionOverflowPosition(CSSPropertyID propId, |
ASSERT(position); |
if (overflowAlignmentKeyword) |
- addProperty(propId, createPrimitiveValuePair(toCSSPrimitiveValue(*position), toCSSPrimitiveValue(*overflowAlignmentKeyword)), important); |
+ addProperty(propId, createPrimitiveValuePair(toCSSPrimitiveValue(position), toCSSPrimitiveValue(overflowAlignmentKeyword)), important); |
else |
addProperty(propId, *position, important); |
@@ -4369,7 +4369,7 @@ PassRefPtrWillBeRawPtr<CSSBasicShape> CSSPropertyParser::parseBasicShapeCircle(C |
if (!args->currentIndex() && argument->id != CSSValueAt) { |
if (NullableCSSValue radius = parseShapeRadius(argument)) { |
- shape->setRadius(toCSSPrimitiveValue(*radius)); |
+ shape->setRadius(toCSSPrimitiveValue(radius)); |
continue; |
} |
@@ -4383,8 +4383,8 @@ PassRefPtrWillBeRawPtr<CSSBasicShape> CSSPropertyParser::parseBasicShapeCircle(C |
if (centerX && centerY && !args->current()) { |
ASSERT(centerX->isPrimitiveValue()); |
ASSERT(centerY->isPrimitiveValue()); |
- shape->setCenterX(toCSSPrimitiveValue(*centerX)); |
- shape->setCenterY(toCSSPrimitiveValue(*centerY)); |
+ shape->setCenterX(toCSSPrimitiveValue(centerX)); |
+ shape->setCenterY(toCSSPrimitiveValue(centerY)); |
} else { |
return nullptr; |
} |
@@ -4418,9 +4418,9 @@ PassRefPtrWillBeRawPtr<CSSBasicShape> CSSPropertyParser::parseBasicShapeEllipse( |
if (args->currentIndex() < 2 && argument->id != CSSValueAt) { |
if (NullableCSSValue radius = parseShapeRadius(argument)) { |
if (!shape->radiusX()) |
- shape->setRadiusX(toCSSPrimitiveValue(*radius)); |
+ shape->setRadiusX(toCSSPrimitiveValue(radius)); |
else |
- shape->setRadiusY(toCSSPrimitiveValue(*radius)); |
+ shape->setRadiusY(toCSSPrimitiveValue(radius)); |
continue; |
} |
@@ -4437,8 +4437,8 @@ PassRefPtrWillBeRawPtr<CSSBasicShape> CSSPropertyParser::parseBasicShapeEllipse( |
ASSERT(centerX->isPrimitiveValue()); |
ASSERT(centerY->isPrimitiveValue()); |
- shape->setCenterX(toCSSPrimitiveValue(*centerX)); |
- shape->setCenterY(toCSSPrimitiveValue(*centerY)); |
+ shape->setCenterX(toCSSPrimitiveValue(centerX)); |
+ shape->setCenterY(toCSSPrimitiveValue(centerY)); |
} |
return shape; |
@@ -5329,7 +5329,7 @@ PassRefPtrWillBeRawPtr<CSSValueList> CSSPropertyParser::parseShadow(CSSParserVal |
if (!parsedColor) |
return nullptr; |
- context.commitColor(toCSSPrimitiveValue(*parsedColor)); |
+ context.commitColor(toCSSPrimitiveValue(parsedColor)); |
} |
} |
@@ -5380,7 +5380,7 @@ NullableCSSValue CSSPropertyParser::parseReflect() |
return nullptr; |
} |
- return CSSReflectValue::create(toCSSPrimitiveValue(*direction), toCSSPrimitiveValue(*offset), mask); |
+ return CSSReflectValue::create(toCSSPrimitiveValue(direction), toCSSPrimitiveValue(offset), mask); |
} |
static bool isFlexBasisMiddleArg(double flexGrow, double flexShrink, double unsetValue, int argSize) |
@@ -5440,7 +5440,7 @@ NullableCSSValue CSSPropertyParser::parsePosition(CSSParserValueList* valueList) |
if (!xValue || !yValue) |
return nullptr; |
- return createPrimitiveValuePair(toCSSPrimitiveValue(*xValue), toCSSPrimitiveValue(*yValue), Pair::KeepIdenticalValues); |
+ return createPrimitiveValuePair(toCSSPrimitiveValue(xValue), toCSSPrimitiveValue(yValue), Pair::KeepIdenticalValues); |
} |
// Parses a list of comma separated positions. i.e., <position># |
@@ -5635,13 +5635,13 @@ bool CSSPropertyParser::buildBorderImageParseContext(CSSPropertyID propId, Borde |
if (!context.canAdvance() && context.allowWidth()) { |
NullableCSSValue borderWidth; |
if (parseBorderImageWidth(borderWidth)) |
- context.commitBorderWidth(toCSSPrimitiveValue(*borderWidth)); |
+ context.commitBorderWidth(toCSSPrimitiveValue(borderWidth)); |
} |
if (!context.canAdvance() && context.requireOutset()) { |
NullableCSSValue borderOutset; |
if (parseBorderImageOutset(borderOutset)) |
- context.commitBorderOutset(toCSSPrimitiveValue(*borderOutset)); |
+ context.commitBorderOutset(toCSSPrimitiveValue(borderOutset)); |
} |
if (!context.canAdvance()) |
@@ -5730,7 +5730,7 @@ bool CSSPropertyParser::parseBorderImageRepeat(NullableCSSValue& result) |
} else |
secondValue = firstValue; |
- result = createPrimitiveValuePair(toCSSPrimitiveValue(*firstValue), toCSSPrimitiveValue(*secondValue)); |
+ result = createPrimitiveValuePair(toCSSPrimitiveValue(firstValue), toCSSPrimitiveValue(secondValue)); |
return true; |
} |
@@ -5786,10 +5786,10 @@ public: |
// Now build a rect value to hold all four of our primitive values. |
RefPtrWillBeRawPtr<Quad> quad = Quad::create(); |
- quad->setTop(toCSSPrimitiveValue(*m_top)); |
- quad->setRight(toCSSPrimitiveValue(*m_right)); |
- quad->setBottom(toCSSPrimitiveValue(*m_bottom)); |
- quad->setLeft(toCSSPrimitiveValue(*m_left)); |
+ quad->setTop(toCSSPrimitiveValue(m_top)); |
+ quad->setRight(toCSSPrimitiveValue(m_right)); |
+ quad->setBottom(toCSSPrimitiveValue(m_bottom)); |
+ quad->setLeft(toCSSPrimitiveValue(m_left)); |
// Make our new border image value now. |
return CSSBorderImageSliceValue::create(cssValuePool().createValue(quad.release()), m_fill); |
@@ -5892,10 +5892,10 @@ public: |
// Now build a quad value to hold all four of our primitive values. |
RefPtrWillBeRawPtr<Quad> quad = Quad::create(); |
- quad->setTop(toCSSPrimitiveValue(*m_top)); |
- quad->setRight(toCSSPrimitiveValue(*m_right)); |
- quad->setBottom(toCSSPrimitiveValue(*m_bottom)); |
- quad->setLeft(toCSSPrimitiveValue(*m_left)); |
+ quad->setTop(toCSSPrimitiveValue(m_top)); |
+ quad->setRight(toCSSPrimitiveValue(m_right)); |
+ quad->setBottom(toCSSPrimitiveValue(m_bottom)); |
+ quad->setLeft(toCSSPrimitiveValue(m_left)); |
// Make our new value now. |
return cssValuePool().createValue(quad.release()); |
@@ -6005,10 +6005,10 @@ bool CSSPropertyParser::parseBorderRadius(CSSPropertyID unresolvedProperty, bool |
completeBorderRadii(radii[1]); |
ImplicitScope implicitScope(this); |
- addProperty(CSSPropertyBorderTopLeftRadius, createPrimitiveValuePair(toCSSPrimitiveValue(*radii[0][0]), toCSSPrimitiveValue(*radii[1][0])), important); |
- addProperty(CSSPropertyBorderTopRightRadius, createPrimitiveValuePair(toCSSPrimitiveValue(*radii[0][1]), toCSSPrimitiveValue(*radii[1][1])), important); |
- addProperty(CSSPropertyBorderBottomRightRadius, createPrimitiveValuePair(toCSSPrimitiveValue(*radii[0][2]), toCSSPrimitiveValue(*radii[1][2])), important); |
- addProperty(CSSPropertyBorderBottomLeftRadius, createPrimitiveValuePair(toCSSPrimitiveValue(*radii[0][3]), toCSSPrimitiveValue(*radii[1][3])), important); |
+ addProperty(CSSPropertyBorderTopLeftRadius, createPrimitiveValuePair(toCSSPrimitiveValue(radii[0][0]), toCSSPrimitiveValue(radii[1][0])), important); |
+ addProperty(CSSPropertyBorderTopRightRadius, createPrimitiveValuePair(toCSSPrimitiveValue(radii[0][1]), toCSSPrimitiveValue(radii[1][1])), important); |
+ addProperty(CSSPropertyBorderBottomRightRadius, createPrimitiveValuePair(toCSSPrimitiveValue(radii[0][2]), toCSSPrimitiveValue(radii[1][2])), important); |
+ addProperty(CSSPropertyBorderBottomLeftRadius, createPrimitiveValuePair(toCSSPrimitiveValue(radii[0][3]), toCSSPrimitiveValue(radii[1][3])), important); |
return true; |
} |
@@ -6597,13 +6597,13 @@ bool CSSPropertyParser::parseRadialGradient(CSSParserValueList* valueList, Nulla |
if (sizeValue && horizontalSize) |
return false; |
// Circles must have 0 or 1 lengths. |
- if (shapeValue && toCSSPrimitiveValue(*shapeValue).getValueID() == CSSValueCircle && verticalSize) |
+ if (shapeValue && toCSSPrimitiveValue(shapeValue).getValueID() == CSSValueCircle && verticalSize) |
return false; |
// Ellipses must have 0 or 2 length/percentages. |
- if (shapeValue && toCSSPrimitiveValue(*shapeValue).getValueID() == CSSValueEllipse && horizontalSize && !verticalSize) |
+ if (shapeValue && toCSSPrimitiveValue(shapeValue).getValueID() == CSSValueEllipse && horizontalSize && !verticalSize) |
return false; |
// If there's only one size, it must be a length. |
- if (!verticalSize && horizontalSize && toCSSPrimitiveValue(*horizontalSize).isPercentage()) |
+ if (!verticalSize && horizontalSize && toCSSPrimitiveValue(horizontalSize).isPercentage()) |
return false; |
result->setShape(shapeValue); |
@@ -6802,7 +6802,7 @@ bool CSSPropertyParser::parseCrossfade(CSSParserValueList* valueList, NullableCS |
return false; |
RefPtrWillBeRawPtr<CSSCrossfadeValue> result = CSSCrossfadeValue::create(*fromImageValue, *toImageValue); |
- result->setPercentage(toCSSPrimitiveValue(*percentage)); |
+ result->setPercentage(toCSSPrimitiveValue(percentage)); |
crossfade = result; |