From cd581ecd0b59a46529d6e30ea647dc64c755803f Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Fri, 19 Apr 2013 16:56:12 +0200 Subject: C++: do not run GC when exiting. This operation is quite costly if a lot of files are involved, and in case of exiting Creator, it's also useless. Change-Id: I97d178d47a3a2f6b214f7ebc45c871edd26b8286 Reviewed-by: Friedemann Kleint Reviewed-by: Eike Ziller --- src/plugins/cpptools/cppmodelmanager.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/plugins/cpptools/cppmodelmanager.cpp') 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"); // 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 processed; QStringList todo = projectFiles(); -- cgit v1.2.1