diff options
Diffstat (limited to 'src/plugins/cpptools/cppmodelmanager.cpp')
-rw-r--r-- | src/plugins/cpptools/cppmodelmanager.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp index 5916216e57..121d0ebfd2 100644 --- a/src/plugins/cpptools/cppmodelmanager.cpp +++ b/src/plugins/cpptools/cppmodelmanager.cpp @@ -626,6 +626,7 @@ CppModelManager *CppModelManager::instance() CppModelManager::CppModelManager(QObject *parent) : CppModelManagerInterface(parent) + , m_enableGC(true) , m_completionAssistProvider(0) , m_highlightingFactory(0) , m_indexingSupporter(0) @@ -656,6 +657,9 @@ CppModelManager::CppModelManager(QObject *parent) connect(session, SIGNAL(aboutToUnloadSession(QString)), this, SLOT(onAboutToUnloadSession())); + connect(Core::ICore::instance(), SIGNAL(coreAboutToClose()), + this, SLOT(onCoreAboutToClose())); + qRegisterMetaType<CPlusPlus::Document::Ptr>("CPlusPlus::Document::Ptr"); // thread connections @@ -1209,8 +1213,16 @@ void CppModelManager::onAboutToUnloadSession() GC(); } +void CppModelManager::onCoreAboutToClose() +{ + m_enableGC = false; +} + void CppModelManager::GC() { + if (!m_enableGC) + return; + Snapshot currentSnapshot = snapshot(); QSet<QString> processed; QStringList todo = projectFiles(); |