From 4d2e5a7d4cafb287c548efebb10a140db838cb2d Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 21 May 2014 15:03:23 +0200 Subject: Debugger: More robust document access in cppExpressionAt Change-Id: I53658225e001b0568c77f095d18e9452b792c5f9 Reviewed-by: David Schulz --- src/plugins/debugger/sourceutils.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/plugins/debugger/sourceutils.cpp') 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 #include #include - #include #include #include +#include + #include #include @@ -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(); } -- cgit v1.2.1