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

Unified Diff: Source/core/css/parser/CSSPropertyParser.cpp

Issue 1226123008: CSSValue Immediates: Replace CSSPrimitiveValue usage with const references (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@cssvalue_patch_4_attempt_2
Patch Set: Rebase Created 5 years, 5 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/parser/CSSParser.cpp ('k') | Source/core/css/parser/SizesCalcParserTest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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;
« no previous file with comments | « Source/core/css/parser/CSSParser.cpp ('k') | Source/core/css/parser/SizesCalcParserTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698