From 7a4752bde5fb1c92e71581ded732ab08a80473ef Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 13 Mar 2019 18:28:29 +0100 Subject: [PATCH] Debugger: Avoid some uses of RunControl::runConfiguration() Change-Id: I1dcf5b96e6c23e369217f38a440305abb51dcd25 Reviewed-by: Christian Stenger --- src/plugins/debugger/debuggerruncontrol.cpp | 9 +++------ src/plugins/projectexplorer/runcontrol.cpp | 4 +++- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/plugins/debugger/debuggerruncontrol.cpp b/src/plugins/debugger/debuggerruncontrol.cpp index 47446080593..5bb4845073d 100644 --- a/src/plugins/debugger/debuggerruncontrol.cpp +++ b/src/plugins/debugger/debuggerruncontrol.cpp @@ -889,8 +889,6 @@ DebuggerRunTool::DebuggerRunTool(RunControl *runControl, AllowTerminal allowTerm d->runId = QString::number(++toolRunCount); - RunConfiguration *runConfig = runControl->runConfiguration(); - runControl->setIcon(ProjectExplorer::Icons::DEBUG_START_SMALL_TOOLBAR); runControl->setPromptToStop([](bool *optionalPrompt) { return RunControl::showPromptToStopDialog( @@ -902,8 +900,7 @@ DebuggerRunTool::DebuggerRunTool(RunControl *runControl, AllowTerminal allowTerm QString(), QString(), optionalPrompt); }); - if (runConfig) - m_runParameters.displayName = runConfig->displayName(); + m_runParameters.displayName = runControl->displayName(); if (auto symbolsAspect = runControl->aspect()) m_runParameters.symbolFile = symbolsAspect->value(); @@ -938,8 +935,7 @@ DebuggerRunTool::DebuggerRunTool(RunControl *runControl, AllowTerminal allowTerm if (!envBinary.isEmpty()) m_runParameters.debugger.executable = QString::fromLocal8Bit(envBinary); - Project *project = runConfig ? runConfig->target()->project() : nullptr; - if (project) { + if (Project *project = runControl->project()) { m_runParameters.projectSourceDirectory = project->projectDirectory(); m_runParameters.projectSourceFiles = project->files(Project::SourceFiles); } @@ -959,6 +955,7 @@ DebuggerRunTool::DebuggerRunTool(RunControl *runControl, AllowTerminal allowTerm m_runParameters.validationErrors.append(t.description); } + RunConfiguration *runConfig = runControl->runConfiguration(); if (runConfig && runConfig->property("supportsDebugger").toBool()) { const QString mainScript = runConfig->property("mainScript").toString(); const QString interpreter = runConfig->property("interpreter").toString(); diff --git a/src/plugins/projectexplorer/runcontrol.cpp b/src/plugins/projectexplorer/runcontrol.cpp index c314b942278..cf1350d0840 100644 --- a/src/plugins/projectexplorer/runcontrol.cpp +++ b/src/plugins/projectexplorer/runcontrol.cpp @@ -297,6 +297,7 @@ public: QPointer runConfiguration; // Not owned. Avoid use. Kit *kit = nullptr; // Not owned. QPointer target; // Not owned. + QPointer project; // Not owned. QPointer outputFormatter = nullptr; std::function promptToStop; std::vector m_factories; @@ -339,6 +340,7 @@ void RunControl::setTarget(Target *target) QTC_CHECK(!d->target); d->target = target; setKit(target->kit()); + d->project = target->project(); } void RunControl::setKit(Kit *kit) @@ -838,7 +840,7 @@ Target *RunControl::target() const Project *RunControl::project() const { - return d->target->project(); + return d->project; } Kit *RunControl::kit() const