Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "core/css/parser/CSSParserToken.h" | 5 #include "core/css/parser/CSSParserToken.h" |
| 6 | 6 |
| 7 #include "core/css/CSSMarkup.h" | 7 #include "core/css/CSSMarkup.h" |
| 8 #include "core/css/parser/CSSPropertyParser.h" | 8 #include "core/css/parser/CSSPropertyParser.h" |
| 9 #include "wtf/HashMap.h" | 9 #include "wtf/HashMap.h" |
| 10 #include "wtf/text/StringBuilder.h" | 10 #include "wtf/text/StringBuilder.h" |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 140 || tokenType == StringToken; | 140 || tokenType == StringToken; |
| 141 } | 141 } |
| 142 | 142 |
| 143 CSSParserToken CSSParserToken::copyWithUpdatedString(const CSSParserString& pars erString) const | 143 CSSParserToken CSSParserToken::copyWithUpdatedString(const CSSParserString& pars erString) const |
| 144 { | 144 { |
| 145 CSSParserToken copy(*this); | 145 CSSParserToken copy(*this); |
| 146 copy.initValueFromCSSParserString(parserString); | 146 copy.initValueFromCSSParserString(parserString); |
| 147 return copy; | 147 return copy; |
| 148 } | 148 } |
| 149 | 149 |
| 150 bool CSSParserToken::valueDataCharRawEqual(const CSSParserToken& other) const | |
| 151 { | |
| 152 if (m_valueLength != other.m_valueLength) | |
|
Timothy Loh
2016/05/09 07:07:07
I don't think this change should be part of this p
ikilpatrick
2016/05/10 20:39:37
I think that case is pretty important, at least at
Timothy Loh
2016/05/11 06:20:37
I don't get why this case is important, but regard
ikilpatrick
2016/05/11 23:59:12
Done.
| |
| 153 return false; | |
| 154 | |
| 155 if (m_valueIs8Bit) { | |
| 156 return other.m_valueIs8Bit ? | |
| 157 equal((const LChar*) m_valueDataCharRaw, (const LChar*) other.m_valu eDataCharRaw, m_valueLength) : | |
|
esprehn
2016/05/09 21:59:54
static_cast, don't do C style casts in blink.
ikilpatrick
2016/05/10 20:39:37
Done.
| |
| 158 equal((const LChar*) m_valueDataCharRaw, (const UChar*) other.m_valu eDataCharRaw, m_valueLength); | |
| 159 } else { | |
| 160 return other.m_valueIs8Bit ? | |
| 161 equal((const UChar*) m_valueDataCharRaw, (const LChar*) other.m_valu eDataCharRaw, m_valueLength) : | |
| 162 equal((const UChar*) m_valueDataCharRaw, (const UChar*) other.m_valu eDataCharRaw, m_valueLength); | |
| 163 } | |
| 164 } | |
| 165 | |
| 150 bool CSSParserToken::operator==(const CSSParserToken& other) const | 166 bool CSSParserToken::operator==(const CSSParserToken& other) const |
| 151 { | 167 { |
| 152 if (m_type != other.m_type) | 168 if (m_type != other.m_type) |
| 153 return false; | 169 return false; |
| 154 switch (m_type) { | 170 switch (m_type) { |
| 155 case DelimiterToken: | 171 case DelimiterToken: |
| 156 return delimiter() == other.delimiter(); | 172 return delimiter() == other.delimiter(); |
| 157 case HashToken: | 173 case HashToken: |
| 158 if (m_hashTokenType != other.m_hashTokenType) | 174 if (m_hashTokenType != other.m_hashTokenType) |
| 159 return false; | 175 return false; |
| 160 // fallthrough | 176 // fallthrough |
| 161 case IdentToken: | 177 case IdentToken: |
| 162 case FunctionToken: | 178 case FunctionToken: |
| 163 case StringToken: | 179 case StringToken: |
| 164 case UrlToken: | 180 case UrlToken: |
| 165 return m_valueDataCharRaw == other.m_valueDataCharRaw && m_valueLength = = other.m_valueLength && m_valueIs8Bit == other.m_valueIs8Bit; | 181 return valueDataCharRawEqual(other); |
| 166 case DimensionToken: | 182 case DimensionToken: |
| 167 if (m_valueDataCharRaw != other.m_valueDataCharRaw || m_valueLength != o ther.m_valueLength || m_valueIs8Bit != other.m_valueIs8Bit) | 183 if (!valueDataCharRawEqual(other)) |
| 168 return false; | 184 return false; |
| 169 // fallthrough | 185 // fallthrough |
| 170 case NumberToken: | 186 case NumberToken: |
| 171 case PercentageToken: | 187 case PercentageToken: |
| 172 return m_numericSign == other.m_numericSign && m_numericValue == other.m _numericValue && m_numericValueType == other.m_numericValueType; | 188 return m_numericSign == other.m_numericSign && m_numericValue == other.m _numericValue && m_numericValueType == other.m_numericValueType; |
| 173 case UnicodeRangeToken: | 189 case UnicodeRangeToken: |
| 174 return m_unicodeRange.start == other.m_unicodeRange.start && m_unicodeRa nge.end == other.m_unicodeRange.end; | 190 return m_unicodeRange.start == other.m_unicodeRange.start && m_unicodeRa nge.end == other.m_unicodeRange.end; |
| 175 default: | 191 default: |
| 176 return true; | 192 return true; |
| 177 } | 193 } |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 264 return builder.append('}'); | 280 return builder.append('}'); |
| 265 | 281 |
| 266 case EOFToken: | 282 case EOFToken: |
| 267 case CommentToken: | 283 case CommentToken: |
| 268 ASSERT_NOT_REACHED(); | 284 ASSERT_NOT_REACHED(); |
| 269 return; | 285 return; |
| 270 } | 286 } |
| 271 } | 287 } |
| 272 | 288 |
| 273 } // namespace blink | 289 } // namespace blink |
| OLD | NEW |