Commit 6293e560 authored by yoav@yoav.ws's avatar yoav@yoav.ws

Initialize all CSSParserValue's variables

The isInt variable of CSSParserValue was often not initialized in CSSGrammar.y.
This CL fixes that.

BUG=385386

Review URL: https://codereview.chromium.org/340503002

git-svn-id: svn://svn.chromium.org/blink/trunk@176323 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent cf9cde6b
...@@ -132,6 +132,7 @@ inline static CSSParserValue makeOperatorValue(int value) ...@@ -132,6 +132,7 @@ inline static CSSParserValue makeOperatorValue(int value)
{ {
CSSParserValue v; CSSParserValue v;
v.id = CSSValueInvalid; v.id = CSSValueInvalid;
v.isInt = false;
v.unit = CSSParserValue::Operator; v.unit = CSSParserValue::Operator;
v.iValue = value; v.iValue = value;
return v; return v;
...@@ -141,6 +142,7 @@ inline static CSSParserValue makeIdentValue(CSSParserString string) ...@@ -141,6 +142,7 @@ inline static CSSParserValue makeIdentValue(CSSParserString string)
{ {
CSSParserValue v; CSSParserValue v;
v.id = cssValueKeywordID(string); v.id = cssValueKeywordID(string);
v.isInt = false;
v.unit = CSSPrimitiveValue::CSS_IDENT; v.unit = CSSPrimitiveValue::CSS_IDENT;
v.string = string; v.string = string;
return v; return v;
...@@ -1592,20 +1594,20 @@ operator: ...@@ -1592,20 +1594,20 @@ operator:
term: term:
unary_term maybe_space unary_term maybe_space
| unary_operator unary_term maybe_space { $$ = $2; $$.fValue *= $1; } | unary_operator unary_term maybe_space { $$ = $2; $$.fValue *= $1; }
| STRING maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.unit = CSSPrimitiveValue::CSS_STRING; } | STRING maybe_space { $$.id = CSSValueInvalid; $$.isInt = false; $$.string = $1; $$.unit = CSSPrimitiveValue::CSS_STRING; }
| IDENT maybe_space { $$ = makeIdentValue($1); } | IDENT maybe_space { $$ = makeIdentValue($1); }
/* We might need to actually parse the number from a dimension, but we can't just put something that uses $$.string into unary_term. */ /* We might need to actually parse the number from a dimension, but we can't just put something that uses $$.string into unary_term. */
| DIMEN maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.unit = CSSPrimitiveValue::CSS_DIMENSION; } | DIMEN maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.isInt = false; $$.unit = CSSPrimitiveValue::CSS_DIMENSION; }
| unary_operator DIMEN maybe_space { $$.id = CSSValueInvalid; $$.string = $2; $$.unit = CSSPrimitiveValue::CSS_DIMENSION; } | unary_operator DIMEN maybe_space { $$.id = CSSValueInvalid; $$.string = $2; $$.isInt = false; $$.unit = CSSPrimitiveValue::CSS_DIMENSION; }
| URI maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.unit = CSSPrimitiveValue::CSS_URI; } | URI maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.isInt = false; $$.unit = CSSPrimitiveValue::CSS_URI; }
| UNICODERANGE maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.unit = CSSPrimitiveValue::CSS_UNICODE_RANGE; } | UNICODERANGE maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.isInt = false; $$.unit = CSSPrimitiveValue::CSS_UNICODE_RANGE; }
| HEX maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.unit = CSSPrimitiveValue::CSS_PARSER_HEXCOLOR; } | HEX maybe_space { $$.id = CSSValueInvalid; $$.string = $1; $$.isInt = false; $$.unit = CSSPrimitiveValue::CSS_PARSER_HEXCOLOR; }
| '#' maybe_space { $$.id = CSSValueInvalid; $$.string = CSSParserString(); $$.unit = CSSPrimitiveValue::CSS_PARSER_HEXCOLOR; } /* Handle error case: "color: #;" */ | '#' maybe_space { $$.id = CSSValueInvalid; $$.string = CSSParserString(); $$.isInt = false; $$.unit = CSSPrimitiveValue::CSS_PARSER_HEXCOLOR; } /* Handle error case: "color: #;" */
/* FIXME: according to the specs a function can have a unary_operator in front. I know no case where this makes sense */ /* FIXME: according to the specs a function can have a unary_operator in front. I know no case where this makes sense */
| function maybe_space | function maybe_space
| calc_function maybe_space | calc_function maybe_space
| '%' maybe_space { /* Handle width: %; */ | '%' maybe_space { /* Handle width: %; */
$$.id = CSSValueInvalid; $$.unit = 0; $$.id = CSSValueInvalid; $$.isInt = false; $$.unit = 0;
} }
| track_names_list maybe_space | track_names_list maybe_space
; ;
......
...@@ -274,6 +274,7 @@ inline void CSSParserValue::setFromFunction(CSSParserFunction* function) ...@@ -274,6 +274,7 @@ inline void CSSParserValue::setFromFunction(CSSParserFunction* function)
id = CSSValueInvalid; id = CSSValueInvalid;
this->function = function; this->function = function;
unit = Function; unit = Function;
isInt = false;
} }
inline void CSSParserValue::setFromValueList(PassOwnPtr<CSSParserValueList> valueList) inline void CSSParserValue::setFromValueList(PassOwnPtr<CSSParserValueList> valueList)
...@@ -281,6 +282,7 @@ inline void CSSParserValue::setFromValueList(PassOwnPtr<CSSParserValueList> valu ...@@ -281,6 +282,7 @@ inline void CSSParserValue::setFromValueList(PassOwnPtr<CSSParserValueList> valu
id = CSSValueInvalid; id = CSSValueInvalid;
this->valueList = valueList.leakPtr(); this->valueList = valueList.leakPtr();
unit = ValueList; unit = ValueList;
isInt = false;
} }
} }
......
...@@ -243,6 +243,8 @@ void MediaQueryData::addParserValue(MediaQueryTokenType type, const MediaQueryTo ...@@ -243,6 +243,8 @@ void MediaQueryData::addParserValue(MediaQueryTokenType type, const MediaQueryTo
} else if (type == DelimiterToken) { } else if (type == DelimiterToken) {
value.unit = CSSParserValue::Operator; value.unit = CSSParserValue::Operator;
value.iValue = token.delimiter(); value.iValue = token.delimiter();
value.id = CSSValueInvalid;
value.isInt = false;
} else { } else {
CSSParserFunction* function = new CSSParserFunction; CSSParserFunction* function = new CSSParserFunction;
function->name.init(token.value()); function->name.init(token.value());
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment