QbsProjectManager: Fix project parsing crash

We called deleteLater() on the parser while immediately deleting an
object that was supposed to outlive the parser.
Amends 1231c9e546.

Change-Id: I7ada041c4047d86249c5bdefc0c53e70dcdd5140
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
Christian Kandeler
2023-12-08 13:37:01 +01:00
parent d39a10bdd2
commit fa6a50e349
2 changed files with 4 additions and 1 deletions

View File

@@ -518,7 +518,7 @@ void QbsBuildSystem::handleQbsParsingDone(bool success)
m_qbsUpdateFutureInterface->reportCanceled();
}
m_qbsProjectParser->deleteLater();
m_qbsProjectParser->deleteLaterSafely();
m_qbsProjectParser = nullptr;
m_qbsUpdateFutureInterface->reportFinished();
delete m_qbsUpdateFutureInterface;

View File

@@ -30,6 +30,9 @@ public:
void cancel();
Utils::Environment environment() const { return m_environment; }
// FIXME: Why on earth do we not own the FutureInterface?
void deleteLaterSafely() { m_fi = nullptr; deleteLater(); }
QbsSession *session() const { return m_session; }
QJsonObject projectData() const { return m_projectData; }
ErrorInfo error() const { return m_error; }