diff --git a/src/plugins/qmakeprojectmanager/qmakenodes.cpp b/src/plugins/qmakeprojectmanager/qmakenodes.cpp index fe4d43ad23b..a6ce53f4505 100644 --- a/src/plugins/qmakeprojectmanager/qmakenodes.cpp +++ b/src/plugins/qmakeprojectmanager/qmakenodes.cpp @@ -1596,11 +1596,8 @@ QmakeProFileNode::QmakeProFileNode(QmakeProject *project, QmakeProFileNode::~QmakeProFileNode() { m_parseFutureWatcher.waitForFinished(); - if (m_readerExact) { - // Oh we need to clean up - applyEvaluate(EvalAbort, true); - m_project->decrementPendingEvaluateFutures(); - } + if (m_readerExact) + applyAsyncEvaluate(); } bool QmakeProFileNode::isParent(QmakeProFileNode *node) diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp index 141060afad8..0263e15994b 100644 --- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp @@ -343,6 +343,7 @@ QmakeProject::QmakeProject(QmakeManager *manager, const QString &fileName) : m_projectFiles(new QmakeProjectFiles), m_qmakeVfs(new QMakeVfs), m_qmakeGlobals(0), + m_qmakeGlobalsRefCnt(0), m_asyncUpdateFutureInterface(0), m_pendingEvaluateFuturesCount(0), m_asyncUpdateState(NoState), @@ -376,6 +377,7 @@ QmakeProject::~QmakeProject() QmakeProFileNode *root = m_rootProjectNode; m_rootProjectNode = 0; delete root; + Q_ASSERT(m_qmakeGlobalsRefCnt == 0); } void QmakeProject::updateFileList()