| 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;
|
|
|
|
|