diff options
author | hjk <hjk121@nokiamail.com> | 2014-05-21 15:03:23 +0200 |
---|---|---|
committer | hjk <hjk121@nokiamail.com> | 2014-05-26 13:21:28 +0200 |
commit | 4d2e5a7d4cafb287c548efebb10a140db838cb2d (patch) | |
tree | b56a1ee39b34096acdf2caa38c7823e3d952f59b /src/plugins/debugger/sourceutils.cpp | |
parent | 29d0ddf2f2ee81a8cd030e1ab174333e379eb3c5 (diff) | |
download | qt-creator-4d2e5a7d4cafb287c548efebb10a140db838cb2d.tar.gz |
Debugger: More robust document access in cppExpressionAt
Change-Id: I53658225e001b0568c77f095d18e9452b792c5f9
Reviewed-by: David Schulz <david.schulz@digia.com>
Diffstat (limited to 'src/plugins/debugger/sourceutils.cpp')
-rw-r--r-- | src/plugins/debugger/sourceutils.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/plugins/debugger/sourceutils.cpp b/src/plugins/debugger/sourceutils.cpp index ed480bf304..5c6bf31860 100644 --- a/src/plugins/debugger/sourceutils.cpp +++ b/src/plugins/debugger/sourceutils.cpp @@ -35,11 +35,12 @@ #include <texteditor/basetexteditor.h> #include <cpptools/abstracteditorsupport.h> #include <cpptools/cppprojectfile.h> - #include <cpptools/cppmodelmanagerinterface.h> #include <cplusplus/ExpressionUnderCursor.h> #include <cplusplus/Overview.h> +#include <utils/qtcassert.h> + #include <QDebug> #include <string.h> @@ -334,13 +335,14 @@ QString cppExpressionAt(TextEditor::ITextEditor *editor, int pos, if (!plaintext) return QString(); - QString expr = plaintext->textCursor().selectedText(); + QTextCursor tc = plaintext->textCursor(); + QString expr = tc.selectedText(); CppModelManagerInterface *modelManager = CppModelManagerInterface::instance(); if (expr.isEmpty() && modelManager) { - QTextCursor tc(plaintext->document()); + QTextDocument *doc = plaintext->document(); + QTC_ASSERT(doc, return QString()); tc.setPosition(pos); - - const QChar ch = editor->textDocument()->characterAt(pos); + const QChar ch = doc->characterAt(pos); if (ch.isLetterOrNumber() || ch == QLatin1Char('_')) tc.movePosition(QTextCursor::EndOfWord); @@ -350,7 +352,6 @@ QString cppExpressionAt(TextEditor::ITextEditor *editor, int pos, *column = tc.positionInBlock(); *line = tc.blockNumber(); } else { - const QTextCursor tc = plaintext->textCursor(); *column = tc.positionInBlock(); *line = tc.blockNumber(); } |