RunControl: Drop IDevice * from doStart()

Use device set inside passed runnable instead.

Grep for all usages of RunControl::start().
If passed device wasn't nullptr, set this device
inside passed runnable. Otherwise ensure that
passed runnable contains device set to nullptr.

Change-Id: I06fd42a16246fa9fedd81eeb47481a217f887cb0
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Jarek Kobus
2022-02-23 16:58:20 +01:00
parent 3f259da6d5
commit f1e973de79
12 changed files with 32 additions and 25 deletions

View File

@@ -348,7 +348,9 @@ GdbServerProviderRunner::GdbServerProviderRunner(ProjectExplorer::RunControl *ru
{
setId("BareMetalGdbServer");
// Baremetal's GDB servers are launched on the host, not on the target.
setStarter([this, runnable] { doStart(runnable, {}); });
Runnable devicelessRunnable = runnable;
devicelessRunnable.device.reset();
setStarter([this, devicelessRunnable] { doStart(devicelessRunnable); });
}
} // namespace Internal

View File

@@ -147,7 +147,8 @@ public:
// FIXME: Spaces!
r.command.setArguments(r.command.executable().toString() + ' ' + r.command.arguments());
r.command.setExecutable(FilePath::fromString(Constants::AppcontrollerFilepath));
doStart(r, runControl->device());
r.device = runControl->device();
doStart(r);
});
}
};

View File

@@ -1085,8 +1085,8 @@ DebugServerRunner::DebugServerRunner(RunControl *runControl, DebugServerPortsGat
}
}
debugServer.command.setArguments(ProcessArgs::joinArgs(args, OsTypeLinux));
doStart(debugServer, runControl->device());
debugServer.device = runControl->device();
doStart(debugServer);
});
}

View File

@@ -99,7 +99,7 @@ public:
CommandLine::Raw};
r.workingDirectory = target->activeBuildConfiguration()->buildDirectory();
r.environment = target->activeBuildConfiguration()->environment();
SimpleTargetRunner::doStart(r, {});
SimpleTargetRunner::doStart(r);
});
}
};

View File

@@ -1188,13 +1188,16 @@ SimpleTargetRunner::SimpleTargetRunner(RunControl *runControl)
void SimpleTargetRunner::start()
{
if (m_starter)
if (m_starter) {
m_starter();
else
doStart(runControl()->runnable(), runControl()->device());
} else {
Runnable runnable = runControl()->runnable();
runnable.device = runControl()->device();
doStart(runControl()->runnable());
}
}
void SimpleTargetRunner::doStart(const Runnable &runnable, const IDevice::ConstPtr &device)
void SimpleTargetRunner::doStart(const Runnable &runnable)
{
m_stopForced = false;
m_stopReported = false;
@@ -1231,7 +1234,8 @@ void SimpleTargetRunner::doStart(const Runnable &runnable, const IDevice::ConstP
connect(&m_launcher, &ApplicationLauncher::appendMessage, this, &RunWorker::appendMessage);
const bool isDesktop = device.isNull() || device.dynamicCast<const DesktopDevice>();
const bool isDesktop = runnable.device.isNull()
|| runnable.device.dynamicCast<const DesktopDevice>();
if (isDesktop) {
connect(&m_launcher, &ApplicationLauncher::processStarted, this, [this] {
// Console processes only know their pid after being started
@@ -1248,9 +1252,7 @@ void SimpleTargetRunner::doStart(const Runnable &runnable, const IDevice::ConstP
} else {
connect(&m_launcher, &ApplicationLauncher::processStarted, this, &RunWorker::reportStarted);
}
Runnable runnableWithDevice = runnable;
runnableWithDevice.device = device;
m_launcher.setRunnable(runnableWithDevice);
m_launcher.setRunnable(runnable);
m_launcher.start();
}

View File

@@ -294,7 +294,7 @@ public:
protected:
void setStarter(const std::function<void()> &starter);
void doStart(const Runnable &runnable, const IDevice::ConstPtr &device);
void doStart(const Runnable &runnable);
private:
void start() final;

View File

@@ -149,7 +149,8 @@ LocalQmlPreviewSupport::LocalQmlPreviewSupport(ProjectExplorer::RunControl *runC
runnable.command.addArg(QmlDebug::qmlDebugLocalArguments(QmlDebug::QmlPreviewServices,
serverUrl.path()));
doStart(runnable, {});
runnable.device.reset();
doStart(runnable);
});
}

View File

@@ -255,8 +255,8 @@ LocalQmlProfilerSupport::LocalQmlProfilerSupport(RunControl *runControl, const Q
arguments += ' ' + debuggee.command.arguments();
debuggee.command.setArguments(arguments);
doStart(debuggee, {});
debuggee.device.reset();
doStart(debuggee);
});
}

View File

@@ -62,8 +62,8 @@ QnxQmlProfilerSupport::QnxQmlProfilerSupport(RunControl *runControl)
Runnable r = runControl->runnable();
r.command.addArg(QmlDebug::qmlDebugTcpArguments(QmlDebug::QmlProfilerServices, serverUrl));
doStart(r, runControl->device());
r.device = runControl->device();
doStart(r);
});
}

View File

@@ -116,8 +116,8 @@ public:
portsGatherer->qmlServer()));
}
r.command.setArguments(ProcessArgs::joinArgs(arguments));
doStart(r, runControl->device());
r.device = runControl->device();
doStart(r);
});
}
};
@@ -202,7 +202,8 @@ public:
Runnable r;
r.command = {QNX_DEBUG_EXECUTABLE, {QString::number(pdebugPort)}};
doStart(r, runControl->device());
r.device = runControl->device();
doStart(r);
});
}
};

View File

@@ -59,8 +59,8 @@ RemoteLinuxQmlToolingSupport::RemoteLinuxQmlToolingSupport(RunControl *runContro
Runnable r = runControl->runnable();
r.command.addArg(QmlDebug::qmlDebugTcpArguments(services, serverUrl));
doStart(r, runControl->device());
r.device = runControl->device();
doStart(r);
});
}

View File

@@ -124,7 +124,7 @@ public:
r.command = emrunCommand(runControl->runConfiguration(),
browserId,
QString::number(portsGatherer->findEndPoint().port()));
SimpleTargetRunner::doStart(r, {});
SimpleTargetRunner::doStart(r);
});
}
};