Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. | 2 Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. |
| 3 | 3 |
| 4 This library is free software; you can redistribute it and/or | 4 This library is free software; you can redistribute it and/or |
| 5 modify it under the terms of the GNU Library General Public | 5 modify it under the terms of the GNU Library General Public |
| 6 License as published by the Free Software Foundation; either | 6 License as published by the Free Software Foundation; either |
| 7 version 2 of the License, or (at your option) any later version. | 7 version 2 of the License, or (at your option) any later version. |
| 8 | 8 |
| 9 This library is distributed in the hope that it will be useful, | 9 This library is distributed in the hope that it will be useful, |
| 10 but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 but WITHOUT ANY WARRANTY; without even the implied warranty of |
| (...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 212 }; | 212 }; |
| 213 | 213 |
| 214 LookAheadResult lookAhead(const String& string) { return lookAheadInline(str ing, TextCaseSensitive); } | 214 LookAheadResult lookAhead(const String& string) { return lookAheadInline(str ing, TextCaseSensitive); } |
| 215 LookAheadResult lookAheadIgnoringCase(const String& string) { return lookAhe adInline(string, TextCaseInsensitive); } | 215 LookAheadResult lookAheadIgnoringCase(const String& string) { return lookAhe adInline(string, TextCaseInsensitive); } |
| 216 | 216 |
| 217 void advance() | 217 void advance() |
| 218 { | 218 { |
| 219 if (m_fastPathFlags & Use8BitAdvance) { | 219 if (m_fastPathFlags & Use8BitAdvance) { |
| 220 ASSERT(!m_pushedChar1); | 220 ASSERT(!m_pushedChar1); |
| 221 m_currentChar = m_currentString.incrementAndGetCurrentChar8(); | 221 m_currentChar = m_currentString.incrementAndGetCurrentChar8(); |
| 222 m_currentString.decrementLength(); | 222 decrementAndCheckLength(); |
| 223 if (!m_currentString.haveOneCharacterLeft()) | |
| 224 return; | |
| 225 | |
| 226 updateSlowCaseFunctionPointers(); | |
| 227 | |
| 228 return; | 223 return; |
| 229 } | 224 } |
| 230 | 225 |
| 231 (this->*m_advanceFunc)(); | 226 (this->*m_advanceFunc)(); |
| 232 } | 227 } |
| 233 | 228 |
| 234 inline void advanceAndUpdateLineNumber() | 229 inline void advanceAndUpdateLineNumber() |
| 235 { | 230 { |
| 236 if (m_fastPathFlags & Use8BitAdvance) { | 231 if (m_fastPathFlags & Use8BitAdvance) { |
| 237 ASSERT(!m_pushedChar1); | 232 ASSERT(!m_pushedChar1); |
| 238 | 233 |
| 239 bool haveNewLine = (m_currentChar == '\n') & !!(m_fastPathFlags & Us e8BitAdvanceAndUpdateLineNumbers); | 234 bool haveNewLine = (m_currentChar == '\n') & !!(m_fastPathFlags & Us e8BitAdvanceAndUpdateLineNumbers); |
| 240 m_currentChar = m_currentString.incrementAndGetCurrentChar8(); | 235 m_currentChar = m_currentString.incrementAndGetCurrentChar8(); |
| 241 m_currentString.decrementLength(); | 236 decrementAndCheckLength(); |
| 242 bool haveOneCharacterLeft = m_currentString.haveOneCharacterLeft(); | |
| 243 | 237 |
| 244 if (haveNewLine) { | 238 if (haveNewLine) { |
|
tkent
2015/08/27 03:08:01
This block doesn't refer to data members updated b
| |
| 245 ++m_currentLine; | 239 ++m_currentLine; |
| 246 m_numberOfCharactersConsumedPriorToCurrentLine = m_numberOfChar actersConsumedPriorToCurrentString + m_currentString.numberOfCharactersConsumed( ); | 240 m_numberOfCharactersConsumedPriorToCurrentLine = m_numberOfChar actersConsumedPriorToCurrentString + m_currentString.numberOfCharactersConsumed( ); |
| 247 } | 241 } |
| 248 | 242 |
| 249 if (haveOneCharacterLeft) | |
| 250 updateSlowCaseFunctionPointers(); | |
| 251 | |
| 252 return; | 243 return; |
| 253 } | 244 } |
| 254 | 245 |
| 255 (this->*m_advanceAndUpdateLineNumberFunc)(); | 246 (this->*m_advanceAndUpdateLineNumberFunc)(); |
| 256 } | 247 } |
| 257 | 248 |
| 258 void advanceAndASSERT(UChar expectedCharacter) | 249 void advanceAndASSERT(UChar expectedCharacter) |
| 259 { | 250 { |
| 260 ASSERT_UNUSED(expectedCharacter, currentChar() == expectedCharacter); | 251 ASSERT_UNUSED(expectedCharacter, currentChar() == expectedCharacter); |
| 261 advance(); | 252 advance(); |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 417 bool m_closed; | 408 bool m_closed; |
| 418 bool m_empty; | 409 bool m_empty; |
| 419 unsigned char m_fastPathFlags; | 410 unsigned char m_fastPathFlags; |
| 420 void (SegmentedString::*m_advanceFunc)(); | 411 void (SegmentedString::*m_advanceFunc)(); |
| 421 void (SegmentedString::*m_advanceAndUpdateLineNumberFunc)(); | 412 void (SegmentedString::*m_advanceAndUpdateLineNumberFunc)(); |
| 422 }; | 413 }; |
| 423 | 414 |
| 424 } | 415 } |
| 425 | 416 |
| 426 #endif | 417 #endif |
| OLD | NEW |