From 65dd738a019b7adba03ac3efb75d1d01cee3512c Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Fri, 4 Mar 2022 17:10:39 +0100 Subject: [PATCH] Fix a call to endFeed() when process wasn't started Fixes the tst_qtcprocess::lineCallbackIntern() test. Change-Id: Id608ab834deaccf854f3d8ff9f4a172de58ef9a2 Reviewed-by: Alessandro Portale --- src/libs/utils/qtcprocess.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/libs/utils/qtcprocess.cpp b/src/libs/utils/qtcprocess.cpp index 17c1bcce2a8..3006034bc01 100644 --- a/src/libs/utils/qtcprocess.cpp +++ b/src/libs/utils/qtcprocess.cpp @@ -643,6 +643,7 @@ public: void slotTimeout(); void slotFinished(); + void handleFinished(int exitCode, QProcess::ExitStatus status); void handleError(QProcess::ProcessError error); void clearForRun(); @@ -1361,7 +1362,7 @@ void QtcProcess::beginFeed() void QtcProcess::endFeed() { - d->slotFinished(); + d->handleFinished(0, QProcess::NormalExit); } void QtcProcess::feedStdOut(const QByteArray &data) @@ -1714,8 +1715,12 @@ void QtcProcessPrivate::slotTimeout() void QtcProcessPrivate::slotFinished() { - const int exitCode = m_process->exitCode(); - const QProcess::ExitStatus status = m_process->exitStatus(); + handleFinished(m_process->exitCode(), m_process->exitStatus()); + q->emitFinished(); +} + +void QtcProcessPrivate::handleFinished(int exitCode, QProcess::ExitStatus status) +{ if (debug) qDebug() << Q_FUNC_INFO << exitCode << status; m_hangTimerCount = 0; @@ -1735,8 +1740,6 @@ void QtcProcessPrivate::slotFinished() m_stdOut.handleRest(); m_stdErr.handleRest(); - - q->emitFinished(); } void QtcProcessPrivate::handleError(QProcess::ProcessError error)