diff options
author | Lars Knoll <lars.knoll@digia.com> | 2012-12-11 07:50:10 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-12-11 14:50:32 +0100 |
commit | 8147bc2f70306f4dff95c933e97566e75afb18f8 (patch) | |
tree | aef91a4ae3ca2f159f9548a668403585d28f8f43 | |
parent | 163b0056096a9d7eca2272fe7e969f99ecd1cab8 (diff) |
Don't bail out on 0 chars in comments
Gets a few more parser tests in the test suite to pass.
Change-Id: Id9ac5211f64aafdd621f6187ad7061ff967bc947
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
-rw-r--r-- | src/qml/qml/parser/qqmljslexer.cpp | 5 | ||||
-rw-r--r-- | src/qml/qml/parser/qqmljslexer_p.h | 1 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/qml/qml/parser/qqmljslexer.cpp b/src/qml/qml/parser/qqmljslexer.cpp index 1270fdbc91..4e15065e30 100644 --- a/src/qml/qml/parser/qqmljslexer.cpp +++ b/src/qml/qml/parser/qqmljslexer.cpp @@ -136,6 +136,7 @@ void Lexer::setCode(const QString &code, int lineno, bool qmlMode) _tokenSpell = QStringRef(); _codePtr = code.unicode(); + _endPtr = _codePtr + code.length(); _lastLinePtr = _codePtr; _tokenLinePtr = _codePtr; _tokenStartPtr = _codePtr; @@ -448,7 +449,7 @@ again: case '/': if (_char == QLatin1Char('*')) { scanChar(); - while (!_char.isNull()) { + while (_codePtr <= _endPtr) { if (_char == QLatin1Char('*')) { scanChar(); if (_char == QLatin1Char('/')) { @@ -466,7 +467,7 @@ again: } } } else if (_char == QLatin1Char('/')) { - while (!_char.isNull() && !isLineTerminator()) { + while (_codePtr <= _endPtr && !isLineTerminator()) { scanChar(); } if (_engine) { diff --git a/src/qml/qml/parser/qqmljslexer_p.h b/src/qml/qml/parser/qqmljslexer_p.h index 66dbb39e1a..e8ffbd3e70 100644 --- a/src/qml/qml/parser/qqmljslexer_p.h +++ b/src/qml/qml/parser/qqmljslexer_p.h @@ -211,6 +211,7 @@ private: QStringRef _tokenSpell; const QChar *_codePtr; + const QChar *_endPtr; const QChar *_lastLinePtr; const QChar *_tokenLinePtr; const QChar *_tokenStartPtr; |