forked from qt-creator/qt-creator
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:
@@ -518,7 +518,7 @@ void QbsBuildSystem::handleQbsParsingDone(bool success)
|
|||||||
m_qbsUpdateFutureInterface->reportCanceled();
|
m_qbsUpdateFutureInterface->reportCanceled();
|
||||||
}
|
}
|
||||||
|
|
||||||
m_qbsProjectParser->deleteLater();
|
m_qbsProjectParser->deleteLaterSafely();
|
||||||
m_qbsProjectParser = nullptr;
|
m_qbsProjectParser = nullptr;
|
||||||
m_qbsUpdateFutureInterface->reportFinished();
|
m_qbsUpdateFutureInterface->reportFinished();
|
||||||
delete m_qbsUpdateFutureInterface;
|
delete m_qbsUpdateFutureInterface;
|
||||||
|
@@ -30,6 +30,9 @@ public:
|
|||||||
void cancel();
|
void cancel();
|
||||||
Utils::Environment environment() const { return m_environment; }
|
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; }
|
QbsSession *session() const { return m_session; }
|
||||||
QJsonObject projectData() const { return m_projectData; }
|
QJsonObject projectData() const { return m_projectData; }
|
||||||
ErrorInfo error() const { return m_error; }
|
ErrorInfo error() const { return m_error; }
|
||||||
|
Reference in New Issue
Block a user