From f9fb4508d4b73b59b7a7a3c74c009cdccb24d21c Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Tue, 6 Aug 2019 13:12:03 +0200 Subject: Clang: Optimize file path cache We now fetch all directories and sources from the database at file path cache creation. Change-Id: I92510b49a234128f4c82b840611db82ead3f1a54 Reviewed-by: Tim Jenssen --- src/tools/clangrefactoringbackend/source/symbolindexing.h | 14 +++++++------- .../clangrefactoringbackend/source/symbolscollector.cpp | 4 ++-- .../clangrefactoringbackend/source/symbolscollector.h | 4 ++-- 3 files changed, 11 insertions(+), 11 deletions(-) (limited to 'src/tools/clangrefactoringbackend') diff --git a/src/tools/clangrefactoringbackend/source/symbolindexing.h b/src/tools/clangrefactoringbackend/source/symbolindexing.h index 936a34af00..e680a45be0 100644 --- a/src/tools/clangrefactoringbackend/source/symbolindexing.h +++ b/src/tools/clangrefactoringbackend/source/symbolindexing.h @@ -63,19 +63,19 @@ class SymbolsCollectorManager final : public ClangBackEnd::ProcessorManager createProcessor() const { - return std::make_unique(m_database); + return std::make_unique(m_filePathCache); } private: - Sqlite::Database &m_database; + FilePathCaching &m_filePathCache; }; class SymbolIndexing final : public SymbolIndexingInterface @@ -84,7 +84,7 @@ public: using BuildDependenciesStorage = ClangBackEnd::BuildDependenciesStorage; using SymbolStorage = ClangBackEnd::SymbolStorage; SymbolIndexing(Sqlite::Database &database, - FilePathCachingInterface &filePathCache, + FilePathCaching &filePathCache, const GeneratedFiles &generatedFiles, ProgressCounter::SetProgressCallback &&setProgressCallback, const Environment &environment) @@ -93,7 +93,7 @@ public: , m_precompiledHeaderStorage(database) , m_projectPartsStorage(database) , m_symbolStorage(database) - , m_collectorManger(generatedFiles, database) + , m_collectorManger(generatedFiles, filePathCache) , m_progressCounter(std::move(setProgressCallback)) , m_indexer(m_indexerQueue, m_symbolStorage, diff --git a/src/tools/clangrefactoringbackend/source/symbolscollector.cpp b/src/tools/clangrefactoringbackend/source/symbolscollector.cpp index ac93ae360d..a233f6d8fe 100644 --- a/src/tools/clangrefactoringbackend/source/symbolscollector.cpp +++ b/src/tools/clangrefactoringbackend/source/symbolscollector.cpp @@ -31,8 +31,8 @@ namespace ClangBackEnd { -SymbolsCollector::SymbolsCollector(Sqlite::Database &database) - : m_filePathCache(database) +SymbolsCollector::SymbolsCollector(FilePathCaching &filePathCache) + : m_filePathCache(filePathCache) , m_indexDataConsumer(std::make_shared(m_symbolEntries, m_sourceLocationEntries, m_filePathCache, diff --git a/src/tools/clangrefactoringbackend/source/symbolscollector.h b/src/tools/clangrefactoringbackend/source/symbolscollector.h index 1ad0c9e29c..824fe057fd 100644 --- a/src/tools/clangrefactoringbackend/source/symbolscollector.h +++ b/src/tools/clangrefactoringbackend/source/symbolscollector.h @@ -42,7 +42,7 @@ namespace ClangBackEnd { class SymbolsCollector final : public SymbolsCollectorInterface { public: - SymbolsCollector(Sqlite::Database &database); + SymbolsCollector(FilePathCaching &filePathCache); void addFiles(const FilePathIds &filePathIds, const Utils::SmallStringVector &arguments); @@ -65,7 +65,7 @@ public: bool isClean() const { return m_clangTool.isClean(); } private: - FilePathCaching m_filePathCache; + CopyableFilePathCaching m_filePathCache; ClangTool m_clangTool; SymbolEntries m_symbolEntries; SourceLocationEntries m_sourceLocationEntries; -- cgit v1.2.1