summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppmodelmanager.cpp
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@digia.com>2013-07-16 16:20:46 +0200
committerNikolai Kosjar <nikolai.kosjar@digia.com>2013-07-17 14:54:10 +0200
commitc84e3a27d61f2b4e407751760d0e3dacfc4640c8 (patch)
tree9b31af56224a5bb5f6de0f6b0a3eb138a23293bc /src/plugins/cpptools/cppmodelmanager.cpp
parentbc4fa63f8489c9c82fd82f12b4acf368e71aa388 (diff)
downloadqt-creator-c84e3a27d61f2b4e407751760d0e3dacfc4640c8.tar.gz
CppTools: Garbage collect if the last CppEditor is closed
Task-number: QTCREATORBUG-9828 Change-Id: Ie0ef9757cedb772702e49542b58d5b589506aa9e Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Diffstat (limited to 'src/plugins/cpptools/cppmodelmanager.cpp')
-rw-r--r--src/plugins/cpptools/cppmodelmanager.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp
index 6d55de5cdf..90e98b1afa 100644
--- a/src/plugins/cpptools/cppmodelmanager.cpp
+++ b/src/plugins/cpptools/cppmodelmanager.cpp
@@ -618,21 +618,22 @@ void CppModelManager::deleteEditorSupport(TextEditor::BaseTextEditor *textEditor
return;
CppEditorSupport *editorSupport;
+ int numberOfOpenEditors = 0;
{ // only lock the operations on m_editorSupport
QMutexLocker locker(&m_editorSupportMutex);
editorSupport = m_editorSupport.value(textEditor, 0);
m_editorSupport.remove(textEditor);
+ numberOfOpenEditors = m_editorSupport.size();
}
delete editorSupport;
++numberOfClosedEditors;
- if (numberOfClosedEditors == 5) {
+ if (numberOfOpenEditors == 0 || numberOfClosedEditors == 5) {
numberOfClosedEditors = 0;
GC();
}
-
}
bool CppModelManager::isCppEditor(Core::IEditor *editor) const