From bc4fa63f8489c9c82fd82f12b4acf368e71aa388 Mon Sep 17 00:00:00 2001
From: Nikolai Kosjar <nikolai.kosjar@digia.com>
Date: Tue, 16 Jul 2013 16:14:47 +0200
Subject: [PATCH] CppTools: Move GC() call from CppEditorWidget to
 CppModelManager

There is no need to have that logic in CppEditorWidget. The
CppModelManager knows how many editors are open and can therefore call
GC() by itself.

Change-Id: I2ed4051ad7b8c87615014d73e29291027d49d2ab
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
---
 src/plugins/cppeditor/cppeditor.cpp      | 9 ---------
 src/plugins/cpptools/cppmodelmanager.cpp | 9 +++++++++
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp
index c20217930c6..17cf49bc866 100644
--- a/src/plugins/cppeditor/cppeditor.cpp
+++ b/src/plugins/cppeditor/cppeditor.cpp
@@ -322,8 +322,6 @@ struct CanonicalSymbol
 
 };
 
-int numberOfClosedEditors = 0;
-
 /// Check if previous line is a CppStyle Doxygen Comment
 bool isPreviousLineCppStyleComment(const QTextCursor &cursor)
 {
@@ -565,13 +563,6 @@ CPPEditorWidget::~CPPEditorWidget()
     if (m_modelManager)
         m_modelManager->deleteEditorSupport(editor());
 
-    ++numberOfClosedEditors;
-    if (numberOfClosedEditors == 5) {
-        if (m_modelManager)
-            m_modelManager->GC();
-        numberOfClosedEditors = 0;
-    }
-
     delete m_completionSupport;
 }
 
diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp
index 4380a212979..6d55de5cdfb 100644
--- a/src/plugins/cpptools/cppmodelmanager.cpp
+++ b/src/plugins/cpptools/cppmodelmanager.cpp
@@ -610,6 +610,8 @@ QList<ProjectPart::Ptr> CppModelManager::projectPart(const QString &fileName) co
 /// \brief Removes the CppEditorSupport for the closed editor.
 void CppModelManager::deleteEditorSupport(TextEditor::BaseTextEditor *textEditor)
 {
+    static short numberOfClosedEditors = 0;
+
     QTC_ASSERT(textEditor, return);
 
     if (!isCppEditor(textEditor))
@@ -624,6 +626,13 @@ void CppModelManager::deleteEditorSupport(TextEditor::BaseTextEditor *textEditor
     }
 
     delete editorSupport;
+
+    ++numberOfClosedEditors;
+    if (numberOfClosedEditors == 5) {
+        numberOfClosedEditors = 0;
+        GC();
+    }
+
 }
 
 bool CppModelManager::isCppEditor(Core::IEditor *editor) const
-- 
GitLab