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