diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2017-02-13 18:20:47 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2017-02-14 08:33:56 +0000 |
commit | 265e4acd102c591b57819cfa6950c572d3359272 (patch) | |
tree | 19e3545bfaa72d2e2280f4b9ac861b0434db1df9 /src/libexec | |
parent | 78e2da4ba077ce8eab1687f2d1165885bb09dbb0 (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.cpp | 39 |
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); } |