From 6b13434a45ec453366892558c249914bcaa23ece Mon Sep 17 00:00:00 2001 From: hjk <qtc-committer@nokia.com> Date: Tue, 21 Dec 2010 12:30:17 +0100 Subject: [PATCH] debugger: don't crash in gotoLocation() if no editor can be created --- src/plugins/debugger/debuggerengine.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp index 7160c735f1f..9fd7b130109 100644 --- a/src/plugins/debugger/debuggerengine.cpp +++ b/src/plugins/debugger/debuggerengine.cpp @@ -536,12 +536,18 @@ void DebuggerEngine::gotoLocation(const Location &loc) const int line = loc.lineNumber(); EditorManager *editorManager = EditorManager::instance(); QList<IEditor *> editors = editorManager->editorsForFileName(file); + IEditor *editor = 0; if (editors.isEmpty()) { - editors.append(editorManager->openEditor(file, QString(), - EditorManager::IgnoreNavigationHistory)); - editors.back()->setProperty(Constants::OPENED_BY_DEBUGGER, true); + editor = editorManager->openEditor(file, QString(), + EditorManager::IgnoreNavigationHistory); + if (editor) { + editors.append(editor); + editor->setProperty(Constants::OPENED_BY_DEBUGGER, true); + } + } else { + editor = editors.back(); } - ITextEditor *texteditor = qobject_cast<ITextEditor *>(editors.back()); + ITextEditor *texteditor = qobject_cast<ITextEditor *>(editor); if (texteditor) texteditor->gotoLine(line, 0); @@ -550,7 +556,7 @@ void DebuggerEngine::gotoLocation(const Location &loc) // FIXME: Breaks with split views. if (!d->m_memoryAgent.hasVisibleEditor() || loc.needsRaise()) - editorManager->activateEditor(editors.back()); + editorManager->activateEditor(editor); //qDebug() << "MEMORY: " << d->m_memoryAgent.hasVisibleEditor(); } -- GitLab