forked from qt-creator/qt-creator
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 <tim.jenssen@qt.io>
This commit is contained in:
@@ -63,19 +63,19 @@ class SymbolsCollectorManager final : public ClangBackEnd::ProcessorManager<Symb
|
||||
public:
|
||||
using Processor = SymbolsCollector;
|
||||
SymbolsCollectorManager(const ClangBackEnd::GeneratedFiles &generatedFiles,
|
||||
Sqlite::Database &database)
|
||||
: ProcessorManager(generatedFiles),
|
||||
m_database(database)
|
||||
FilePathCaching &filePathCache)
|
||||
: ProcessorManager(generatedFiles)
|
||||
, m_filePathCache(filePathCache)
|
||||
{}
|
||||
|
||||
protected:
|
||||
std::unique_ptr<SymbolsCollector> createProcessor() const
|
||||
{
|
||||
return std::make_unique<SymbolsCollector>(m_database);
|
||||
return std::make_unique<SymbolsCollector>(m_filePathCache);
|
||||
}
|
||||
|
||||
private:
|
||||
Sqlite::Database &m_database;
|
||||
FilePathCaching &m_filePathCache;
|
||||
};
|
||||
|
||||
class SymbolIndexing final : public SymbolIndexingInterface
|
||||
@@ -84,7 +84,7 @@ public:
|
||||
using BuildDependenciesStorage = ClangBackEnd::BuildDependenciesStorage<Sqlite::Database>;
|
||||
using SymbolStorage = ClangBackEnd::SymbolStorage<Sqlite::Database>;
|
||||
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,
|
||||
|
||||
@@ -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<IndexDataConsumer>(m_symbolEntries,
|
||||
m_sourceLocationEntries,
|
||||
m_filePathCache,
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user