summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/webkit
diff options
context:
space:
mode:
authorJedrzej Nowacki <jedrzej.nowacki@nokia.com>2009-08-20 16:15:55 (GMT)
committerJedrzej Nowacki <jedrzej.nowacki@nokia.com>2009-08-20 16:20:43 (GMT)
commit4d9bb3f082b6e8b9ae159028b41cd2caa80ce936 (patch)
treed20704e41f01ccbc1f3630ecc780e59ae35e5f9b /src/3rdparty/webkit
parent284165a06de1e6c140db51b3dde6ad055b93c21e (diff)
downloadQt-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.cpp7
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/Lexer.h4
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;