From e68753b48ba515124897bb2a5439dd3d3b1ce819 Mon Sep 17 00:00:00 2001 From: Robert Loehning <robert.loehning@nokia.com> Date: Mon, 2 Nov 2009 19:14:40 +0100 Subject: [PATCH] Fixed index out of range. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Thorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com> --- src/libs/cplusplus/BackwardsScanner.cpp | 5 +++++ src/libs/cplusplus/BackwardsScanner.h | 2 ++ src/plugins/cppeditor/cppeditor.cpp | 3 ++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/libs/cplusplus/BackwardsScanner.cpp b/src/libs/cplusplus/BackwardsScanner.cpp index da12f3e599a..7f1f6cdfe6b 100644 --- a/src/libs/cplusplus/BackwardsScanner.cpp +++ b/src/libs/cplusplus/BackwardsScanner.cpp @@ -131,6 +131,11 @@ int BackwardsScanner::previousBlockState(const QTextBlock &block) const return 0; } +int BackwardsScanner::size() const +{ + return _tokens.size(); +} + int BackwardsScanner::startOfMatchingBrace(int index) const { const BackwardsScanner &tk = *this; diff --git a/src/libs/cplusplus/BackwardsScanner.h b/src/libs/cplusplus/BackwardsScanner.h index b2e7414951e..d991906fc55 100644 --- a/src/libs/cplusplus/BackwardsScanner.h +++ b/src/libs/cplusplus/BackwardsScanner.h @@ -69,6 +69,8 @@ public: int previousBlockState(const QTextBlock &block) const; + int size() const; + private: const SimpleToken &fetchToken(int i); diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp index 7260569dbb7..dcec76f3673 100644 --- a/src/plugins/cppeditor/cppeditor.cpp +++ b/src/plugins/cppeditor/cppeditor.cpp @@ -1579,7 +1579,8 @@ void CPPEditor::indentBlock(QTextDocument *doc, QTextBlock block, QChar typedCha tabSettings().indentLine(block, indent); return; } else if ((firstToken.is(T_PUBLIC) || firstToken.is(T_PROTECTED) || firstToken.is(T_PRIVATE) || - firstToken.is(T_Q_SIGNALS) || firstToken.is(T_Q_SLOTS)) && tk[1].is(T_COLON)) { + firstToken.is(T_Q_SIGNALS) || firstToken.is(T_Q_SLOTS)) && + tk.size() > 1 && tk[1].is(T_COLON)) { const int startOfBlock = tk.startOfBlock(0); if (startOfBlock != 0) { const int indent = tk.indentation(startOfBlock); -- GitLab