diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp index c20217930c63bb8d571a1bd7b9086f0bb1d1a4f3..17cf49bc86609c76f12c0ebde0216e0bc2c81793 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 4380a212979f2442374a7c9b8cf52e0b6ff9fe0a..6d55de5cdfbd0416c6f763ea200550c78244d17b 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