diff options
| author | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2013-07-16 16:20:46 +0200 |
|---|---|---|
| committer | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2013-07-17 14:54:10 +0200 |
| commit | c84e3a27d61f2b4e407751760d0e3dacfc4640c8 (patch) | |
| tree | 9b31af56224a5bb5f6de0f6b0a3eb138a23293bc /src/plugins/cpptools/cppmodelmanager.cpp | |
| parent | bc4fa63f8489c9c82fd82f12b4acf368e71aa388 (diff) | |
| download | qt-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.cpp | 5 |
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 |
