diff options
author | Jedrzej Nowacki <jedrzej.nowacki@nokia.com> | 2009-08-20 16:15:55 (GMT) |
---|---|---|
committer | Jedrzej Nowacki <jedrzej.nowacki@nokia.com> | 2009-08-20 16:20:43 (GMT) |
commit | 4d9bb3f082b6e8b9ae159028b41cd2caa80ce936 (patch) | |
tree | d20704e41f01ccbc1f3630ecc780e59ae35e5f9b /src/3rdparty/webkit | |
parent | 284165a06de1e6c140db51b3dde6ad055b93c21e (diff) | |
download | Qt-4d9bb3f082b6e8b9ae159028b41cd2caa80ce936.zip Qt-4d9bb3f082b6e8b9ae159028b41cd2caa80ce936.tar.gz Qt-4d9bb3f082b6e8b9ae159028b41cd2caa80ce936.tar.bz2 |
Fix JavaScriptCore::Lexer column count
Column number is rest after each new line character in
the source code.
Reviewed-by: Kent Hansen
Diffstat (limited to 'src/3rdparty/webkit')
-rw-r--r-- | src/3rdparty/webkit/JavaScriptCore/parser/Lexer.cpp | 7 | ||||
-rw-r--r-- | src/3rdparty/webkit/JavaScriptCore/parser/Lexer.h | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/parser/Lexer.cpp b/src/3rdparty/webkit/JavaScriptCore/parser/Lexer.cpp index b22832f..a0a6a74 100644 --- a/src/3rdparty/webkit/JavaScriptCore/parser/Lexer.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/parser/Lexer.cpp @@ -59,6 +59,7 @@ static const UChar byteOrderMark = 0xFEFF; Lexer::Lexer(JSGlobalData* globalData) : m_isReparsing(false) , m_globalData(globalData) + , m_startColumnNumberCorrection(0) , m_keywordTable(JSC::mainTable) { m_buffer8.reserveInitialCapacity(initialReadBufferCapacity); @@ -201,6 +202,7 @@ void Lexer::shiftLineTerminator() else shift1(); + m_startColumnNumberCorrection = currentOffset(); ++m_lineNumber; } @@ -900,8 +902,9 @@ returnToken: { int lineNumber = m_lineNumber; llocp->first_line = lineNumber; llocp->last_line = lineNumber; - llocp->first_column = startOffset; - llocp->last_column = currentOffset(); + + llocp->first_column = startOffset - m_startColumnNumberCorrection; + llocp->last_column = currentOffset() - m_startColumnNumberCorrection; m_lastToken = token; return token; diff --git a/src/3rdparty/webkit/JavaScriptCore/parser/Lexer.h b/src/3rdparty/webkit/JavaScriptCore/parser/Lexer.h index 2583162..0ef6dd4 100644 --- a/src/3rdparty/webkit/JavaScriptCore/parser/Lexer.h +++ b/src/3rdparty/webkit/JavaScriptCore/parser/Lexer.h @@ -87,6 +87,10 @@ namespace JSC { static const size_t initialIdentifierTableCapacity = 64; int m_lineNumber; + // this variable is supposed to keep index of last new line character ('\n' or '\r\n'or '\n\r'...) + // it is importent to calculate correct first_column in parser + int m_startColumnNumberCorrection; + Vector<char> m_buffer8; Vector<UChar> m_buffer16; |