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

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

Issue 1225403010: Reduce usage of CSSParserValueList::size (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fix warning 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/parser/CSSPropertyParser.h ('k') | no next file » | 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 9d57956eb7457787f2b8a86da6ee4508574efa74..1a7dd782a11896b30b0c432d377037f9a86c6bfd 100644
--- a/Source/core/css/parser/CSSPropertyParser.cpp
+++ b/Source/core/css/parser/CSSPropertyParser.cpp
@@ -464,8 +464,6 @@ bool CSSPropertyParser::parseValue(CSSPropertyID unresolvedProperty, bool import
return true;
}
- int num = inShorthand() ? 1 : m_valueList->size();
-
if (CSSParserFastPaths::isKeywordPropertyID(propId)) {
if (!CSSParserFastPaths::isValidKeywordPropertyAndValue(propId, id))
return false;
@@ -506,7 +504,7 @@ bool CSSPropertyParser::parseValue(CSSPropertyID unresolvedProperty, bool import
*/
case CSSPropertyOverflow: {
ShorthandScope scope(this, propId);
- if (num != 1 || !parseValue(CSSPropertyOverflowY, important))
+ if (!parseValue(CSSPropertyOverflowY, important) || m_valueList->current())
return false;
RefPtrWillBeRawPtr<CSSValue> overflowXValue = nullptr;
@@ -532,28 +530,21 @@ bool CSSPropertyParser::parseValue(CSSPropertyID unresolvedProperty, bool import
}
break;
- case CSSPropertyFontWeight: { // normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit
- if (m_valueList->size() != 1)
- return false;
- return parseFontWeight(important);
- }
+ case CSSPropertyFontWeight: // normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit
+ return parseFontWeight(important) && !m_valueList->next();
case CSSPropertyBorderSpacing: {
- if (num == 1) {
- ShorthandScope scope(this, CSSPropertyBorderSpacing);
- if (!parseValue(CSSPropertyWebkitBorderHorizontalSpacing, important))
- return false;
+ ShorthandScope scope(this, CSSPropertyBorderSpacing);
+ if (!parseValue(CSSPropertyWebkitBorderHorizontalSpacing, important))
+ return false;
+ if (!m_valueList->current()) {
CSSValue* value = m_parsedProperties.last().value();
addProperty(CSSPropertyWebkitBorderVerticalSpacing, value, important);
return true;
}
- else if (num == 2) {
- ShorthandScope scope(this, CSSPropertyBorderSpacing);
- if (!parseValue(CSSPropertyWebkitBorderHorizontalSpacing, important) || !parseValue(CSSPropertyWebkitBorderVerticalSpacing, important))
- return false;
- return true;
- }
- return false;
+ if (!parseValue(CSSPropertyWebkitBorderVerticalSpacing, important))
+ return false;
+ return !m_valueList->current();
}
case CSSPropertyWebkitBorderHorizontalSpacing:
case CSSPropertyWebkitBorderVerticalSpacing:
@@ -978,15 +969,13 @@ bool CSSPropertyParser::parseValue(CSSPropertyID unresolvedProperty, bool import
case CSSPropertyBorderTopLeftRadius:
case CSSPropertyBorderBottomLeftRadius:
case CSSPropertyBorderBottomRightRadius: {
- if (num != 1 && num != 2)
- return false;
validPrimitive = validUnit(value, FLength | FPercent | FNonNeg);
if (!validPrimitive)
return false;
RefPtrWillBeRawPtr<CSSPrimitiveValue> parsedValue1 = createPrimitiveNumericValue(value);
RefPtrWillBeRawPtr<CSSPrimitiveValue> parsedValue2 = nullptr;
- if (num == 2) {
- value = m_valueList->next();
+ value = m_valueList->next();
+ if (value) {
validPrimitive = validUnit(value, FLength | FPercent | FNonNeg);
if (!validPrimitive)
return false;
@@ -994,6 +983,8 @@ bool CSSPropertyParser::parseValue(CSSPropertyID unresolvedProperty, bool import
} else
parsedValue2 = parsedValue1;
+ if (m_valueList->next())
+ return false;
addProperty(propId, createPrimitiveValuePair(parsedValue1.release(), parsedValue2.release()), important);
return true;
}
@@ -1301,21 +1292,17 @@ bool CSSPropertyParser::parseValue(CSSPropertyID unresolvedProperty, bool import
return parseGridShorthand(important);
case CSSPropertyWebkitMarginCollapse: {
- if (num == 1) {
- ShorthandScope scope(this, CSSPropertyWebkitMarginCollapse);
- if (!parseValue(webkitMarginCollapseShorthand().properties()[0], important))
- return false;
+ ShorthandScope scope(this, CSSPropertyWebkitMarginCollapse);
+ if (!parseValue(webkitMarginCollapseShorthand().properties()[0], important))
+ return false;
+ if (!m_valueList->current()) {
CSSValue* value = m_parsedProperties.last().value();
addProperty(webkitMarginCollapseShorthand().properties()[1], value, important);
return true;
}
- else if (num == 2) {
- ShorthandScope scope(this, CSSPropertyWebkitMarginCollapse);
- if (!parseValue(webkitMarginCollapseShorthand().properties()[0], important) || !parseValue(webkitMarginCollapseShorthand().properties()[1], important))
- return false;
- return true;
- }
- return false;
+ if (!parseValue(webkitMarginCollapseShorthand().properties()[1], important))
+ return false;
+ return !m_valueList->current();
}
case CSSPropertyWebkitColumnCount:
parsedValue = parseColumnCount();
@@ -1449,10 +1436,8 @@ bool CSSPropertyParser::parseValue(CSSPropertyID unresolvedProperty, bool import
case CSSPropertyFont:
// [ [ 'font-style' || 'font-variant' || 'font-weight' ]? 'font-size' [ / 'line-height' ]?
// 'font-family' ] | caption | icon | menu | message-box | small-caption | status-bar | inherit
- if (num == 1 && id >= CSSValueCaption && id <= CSSValueStatusBar) {
- parseSystemFont(important);
- return true;
- }
+ if (id >= CSSValueCaption && id <= CSSValueStatusBar)
+ return parseSystemFont(important);
return parseFont(important);
case CSSPropertyListStyle:
return parseShorthand(propId, listStyleShorthand(), important);
@@ -4650,12 +4635,12 @@ bool CSSPropertyParser::parseFont(bool important)
return true;
}
-void CSSPropertyParser::parseSystemFont(bool important)
+bool CSSPropertyParser::parseSystemFont(bool important)
{
- ASSERT(m_valueList->size() == 1);
CSSValueID systemFontID = m_valueList->valueAt(0)->id;
ASSERT(systemFontID >= CSSValueCaption && systemFontID <= CSSValueStatusBar);
- m_valueList->next();
+ if (m_valueList->next())
+ return false;
FontStyle fontStyle = FontStyleNormal;
FontWeight fontWeight = FontWeightNormal;
@@ -4674,6 +4659,7 @@ void CSSPropertyParser::parseSystemFont(bool important)
addProperty(CSSPropertyFontStretch, cssValuePool().createIdentifierValue(CSSValueNormal), important);
addProperty(CSSPropertyFontVariant, cssValuePool().createIdentifierValue(CSSValueNormal), important);
addProperty(CSSPropertyLineHeight, cssValuePool().createIdentifierValue(CSSValueNormal), important);
+ return true;
}
class FontFamilyValueBuilder {
@@ -7440,9 +7426,7 @@ bool CSSPropertyParser::parseFontFaceDescriptor(CSSPropertyID propId)
parsedValue = parseFontFaceUnicodeRange();
break;
case CSSPropertyFontWeight: // normal | bold | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900
- if (m_valueList->size() != 1)
- return false;
- return parseFontWeight(false);
+ return parseFontWeight(false) && !m_valueList->next();
case CSSPropertyFontStretch:
case CSSPropertyFontStyle:
if (!CSSParserFastPaths::isValidKeywordPropertyAndValue(propId, id))
« no previous file with comments | « Source/core/css/parser/CSSPropertyParser.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698