diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp index 32536961ae1..5bd01b39b54 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.cpp +++ b/src/plugins/qbsprojectmanager/qbsproject.cpp @@ -114,6 +114,8 @@ QbsProject::QbsProject(QbsManager *manager, const QString &fileName) : connect(&m_parsingDelay, SIGNAL(timeout()), this, SLOT(parseCurrentBuildConfiguration())); updateDocuments(QSet() << fileName); + + // NOTE: QbsProjectNode does not use this as a parent! m_rootProjectNode = new QbsProjectNode(this); // needs documents to be initialized! } @@ -125,6 +127,12 @@ QbsProject::~QbsProject() m_qbsSetupProjectJob->cancel(); delete m_qbsSetupProjectJob; } + + // Deleting the root node triggers a few things, make sure rootProjectNode + // returns 0 already + QbsProjectNode *root = m_rootProjectNode; + m_rootProjectNode = 0; + delete root; } QString QbsProject::displayName() const