aboutsummaryrefslogtreecommitdiffstats
path: root/src/libexec
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2017-02-13 18:20:47 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2017-02-14 08:33:56 +0000
commit265e4acd102c591b57819cfa6950c572d3359272 (patch)
tree19e3545bfaa72d2e2280f4b9ac861b0434db1df9 /src/libexec
parent78e2da4ba077ce8eab1687f2d1165885bb09dbb0 (diff)
Process launcher: Don't call sender() repeatedly
That call is not free. Change-Id: Id7a5c6209adf5f5363307e3595810b953a9bbf30 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'src/libexec')
-rw-r--r--src/libexec/qbs_processlauncher/launchersockethandler.cpp39
1 files changed, 21 insertions, 18 deletions
diff --git a/src/libexec/qbs_processlauncher/launchersockethandler.cpp b/src/libexec/qbs_processlauncher/launchersockethandler.cpp
index 2e1d85c5f..92ae4398b 100644
--- a/src/libexec/qbs_processlauncher/launchersockethandler.cpp
+++ b/src/libexec/qbs_processlauncher/launchersockethandler.cpp
@@ -177,25 +177,27 @@ void LauncherSocketHandler::handleSocketClosed()
void LauncherSocketHandler::handleProcessError()
{
- if (senderProcess()->error() != QProcess::FailedToStart)
+ Process * proc = senderProcess();
+ if (proc->error() != QProcess::FailedToStart)
return;
- senderProcess()->stopStopProcedure();
- ProcessErrorPacket packet(senderProcess()->token());
- packet.error = senderProcess()->error();
- packet.errorString = senderProcess()->errorString();
+ proc->stopStopProcedure();
+ ProcessErrorPacket packet(proc->token());
+ packet.error = proc->error();
+ packet.errorString = proc->errorString();
sendPacket(packet);
}
void LauncherSocketHandler::handleProcessFinished()
{
- senderProcess()->stopStopProcedure();
- ProcessFinishedPacket packet(senderProcess()->token());
- packet.error = senderProcess()->error();
- packet.errorString = senderProcess()->errorString();
- packet.exitCode = senderProcess()->exitCode();
- packet.exitStatus = senderProcess()->exitStatus();
- packet.stdErr = senderProcess()->readAllStandardError();
- packet.stdOut = senderProcess()->readAllStandardOutput();
+ Process * proc = senderProcess();
+ proc->stopStopProcedure();
+ ProcessFinishedPacket packet(proc->token());
+ packet.error = proc->error();
+ packet.errorString = proc->errorString();
+ packet.exitCode = proc->exitCode();
+ packet.exitStatus = proc->exitStatus();
+ packet.stdErr = proc->readAllStandardError();
+ packet.stdOut = proc->readAllStandardOutput();
sendPacket(packet);
}
@@ -203,14 +205,15 @@ void LauncherSocketHandler::handleStopFailure()
{
// Process did not react to a kill signal. Rare, but not unheard of.
// Forget about the associated Process object and report process exit to the client.
- senderProcess()->disconnect();
- m_processes.remove(senderProcess()->token());
- ProcessFinishedPacket packet(senderProcess()->token());
+ Process * proc = senderProcess();
+ proc->disconnect();
+ m_processes.remove(proc->token());
+ ProcessFinishedPacket packet(proc->token());
packet.error = QProcess::Crashed;
packet.exitCode = -1;
packet.exitStatus = QProcess::CrashExit;
- packet.stdErr = senderProcess()->readAllStandardError();
- packet.stdOut = senderProcess()->readAllStandardOutput();
+ packet.stdErr = proc->readAllStandardError();
+ packet.stdOut = proc->readAllStandardOutput();
sendPacket(packet);
}