From ac3aa805b9765653c78a198548a08b814193d3a4 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Wed, 2 Mar 2022 18:35:27 +0100 Subject: [PATCH] QtcProcess: Ensure we set the data just after creating handle ...instead of ensuring in many functions that m_setup isn't null. This amends 36c49cd2ea82b6581cad7a7660d82b5a5228ffb8 and solves the issue for other functions like processId(), exitCode(), etc... Amends 36c49cd2ea82b6581cad7a7660d82b5a5228ffb8 Change-Id: I986f7b30e90e5825ae2bb57b4bc2aa14f56e401f Reviewed-by: Reviewed-by: hjk --- src/libs/utils/launchersocket.cpp | 2 -- src/libs/utils/qtcprocess.cpp | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/libs/utils/launchersocket.cpp b/src/libs/utils/launchersocket.cpp index cc222629ac1..124fd4ecec7 100644 --- a/src/libs/utils/launchersocket.cpp +++ b/src/libs/utils/launchersocket.cpp @@ -337,14 +337,12 @@ int CallerHandle::exitCode() const QString CallerHandle::errorString() const { QTC_ASSERT(isCalledFromCallersThread(), return {}); - QTC_ASSERT(m_setup.get(), return {}); return m_setup->m_errorString; } void CallerHandle::setErrorString(const QString &str) { QTC_ASSERT(isCalledFromCallersThread(), return); - QTC_ASSERT(m_setup.get(), return); m_setup->m_errorString = str; } diff --git a/src/libs/utils/qtcprocess.cpp b/src/libs/utils/qtcprocess.cpp index 87eb208b20f..17c1bcce2a8 100644 --- a/src/libs/utils/qtcprocess.cpp +++ b/src/libs/utils/qtcprocess.cpp @@ -485,6 +485,7 @@ public: ProcessLauncherImpl() : m_token(uniqueToken()) { m_handle = LauncherInterface::registerHandle(this, token()); + m_handle->setProcessSetupData(m_setup); connect(m_handle, &CallerHandle::errorOccurred, this, &ProcessInterface::errorOccurred); connect(m_handle, &CallerHandle::started, @@ -526,7 +527,6 @@ public: private: void doDefaultStart(const QString &program, const QStringList &arguments) override { - m_handle->setProcessSetupData(m_setup); m_handle->start(program, arguments); }