From fc731a3a673b5e2992bf90e01bca2913bbece0cd Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Fri, 23 Aug 2013 15:07:19 +0200 Subject: CppTools: Introduce LocatorData Until now the locator filters CppLocatorFilter, CppClassesFilter and CppFunctionsFilter used unnecessarily their own SearchSymbols instance. The results were also saved separately, which was unfavorable since e.g. the functions and classes data could be shared. Starting with this patch an instance of LocatorData will serve all mentioned filters. This saves about 20MB of memory after indexing the Qt Creator project. Change-Id: I8a34b67eb9fe0e5c68ba6e7c8f576389c78efc6f Reviewed-by: Thomas Hartmann Reviewed-by: Erik Verbruggen --- src/plugins/cpptools/cpptoolsplugin.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/plugins/cpptools/cpptoolsplugin.cpp') diff --git a/src/plugins/cpptools/cpptoolsplugin.cpp b/src/plugins/cpptools/cpptoolsplugin.cpp index be08a9afff..f73b0444ca 100644 --- a/src/plugins/cpptools/cpptoolsplugin.cpp +++ b/src/plugins/cpptools/cpptoolsplugin.cpp @@ -40,6 +40,7 @@ #include "cpptoolssettings.h" #include "cpptoolsreuse.h" #include "cppprojectfile.h" +#include "cpplocatordata.h" #include #include @@ -101,9 +102,11 @@ bool CppToolsPlugin::initialize(const QStringList &arguments, QString *error) connect(Core::DocumentManager::instance(), SIGNAL(filesChangedInternally(QStringList)), modelManager, SLOT(updateSourceFiles(QStringList))); - addAutoReleasedObject(new CppLocatorFilter(modelManager)); - addAutoReleasedObject(new CppClassesFilter(modelManager)); - addAutoReleasedObject(new CppFunctionsFilter(modelManager)); + CppLocatorData *locatorData = new CppLocatorData(modelManager); + addAutoReleasedObject(locatorData); + addAutoReleasedObject(new CppLocatorFilter(locatorData)); + addAutoReleasedObject(new CppClassesFilter(locatorData)); + addAutoReleasedObject(new CppFunctionsFilter(locatorData)); addAutoReleasedObject(new CppCurrentDocumentFilter(modelManager)); addAutoReleasedObject(new CppFileSettingsPage(m_fileSettings)); addAutoReleasedObject(new SymbolsFindFilter(modelManager)); -- cgit v1.2.1