QbsProjectManager: Directly delete project parser

It holds a pointer to the future which is deleted directly 3 lines
below. And a signal (taskStarted) can come to the parser before it gets
deleted, then accessing the deleted future. Which results in a
segmentation fault.

Change-Id: I468c6477023488d6d922d6bf621cba886740d8f4
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
Björn Schäpers
2022-02-27 17:20:53 +01:00
committed by Björn Schäpers
parent fc82e593af
commit 0803390a83

View File

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