From 8147bc2f70306f4dff95c933e97566e75afb18f8 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Tue, 11 Dec 2012 07:50:10 +0100 Subject: [PATCH] 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 --- src/qml/qml/parser/qqmljslexer.cpp | 5 +++-- 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 1270fdb..4e15065 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 66dbb39..e8ffbd3 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; -- 2.7.4