diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/io/qprocess.cpp | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/src/corelib/io/qprocess.cpp b/src/corelib/io/qprocess.cpp index 48db7cdd54..9170b72e56 100644 --- a/src/corelib/io/qprocess.cpp +++ b/src/corelib/io/qprocess.cpp @@ -849,12 +849,6 @@ void QProcessPrivate::cleanup() { q_func()->setProcessState(QProcess::NotRunning); #ifdef Q_OS_WIN - if (pid) { - CloseHandle(pid->hThread); - CloseHandle(pid->hProcess); - delete pid; - pid = 0; - } if (stdinWriteTrigger) { delete stdinWriteTrigger; stdinWriteTrigger = 0; @@ -863,9 +857,15 @@ void QProcessPrivate::cleanup() delete processFinishedNotifier; processFinishedNotifier = 0; } - -#endif + if (pid) { + CloseHandle(pid->hThread); + CloseHandle(pid->hProcess); + delete pid; + pid = nullptr; + } +#else pid = 0; +#endif if (stdoutChannel.notifier) { delete stdoutChannel.notifier; @@ -1166,10 +1166,6 @@ void QProcessPrivate::processFinished() #ifdef Q_OS_UNIX waitForDeadChild(); #endif -#ifdef Q_OS_WIN - if (processFinishedNotifier) - processFinishedNotifier->setEnabled(false); -#endif findExitCode(); cleanup(); |