diff options
author | Erik Verbruggen <erik.verbruggen@digia.com> | 2013-04-19 16:56:12 +0200 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@digia.com> | 2013-04-22 10:08:55 +0200 |
commit | cd581ecd0b59a46529d6e30ea647dc64c755803f (patch) | |
tree | 356b71ef3c8f0dd49f41c4843f9fe0b53b94933f /src/plugins/cpptools/cppmodelmanager.cpp | |
parent | 564c9b2842663062658a0febdcc5787098d871b2 (diff) | |
download | qt-creator-cd581ecd0b59a46529d6e30ea647dc64c755803f.tar.gz |
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 <Friedemann.Kleint@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
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(); |