Clang: Clear SymbolCollector before updating new project parts

Change-Id: I82e9bb4f66a7597bb911fbc97d6022ff3fdb0b35
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
This commit is contained in:
Marco Bubke
2017-12-13 12:04:19 +01:00
parent 3c43e5d7ec
commit ab60cfd3a4
11 changed files with 100 additions and 14 deletions

View File

@@ -35,18 +35,26 @@ SymbolsCollector::SymbolsCollector(FilePathCachingInterface &filePathCache)
void SymbolsCollector::addFiles(const Utils::PathStringVector &filePaths, const Utils::SmallStringVector &arguments)
{
ClangTool::addFiles(filePaths, arguments);
m_clangTool.addFiles(filePaths, arguments);
m_collectMacrosSourceFileCallbacks.addSourceFiles(filePaths);
}
void SymbolsCollector::addUnsavedFiles(const V2::FileContainers &unsavedFiles)
{
ClangTool::addUnsavedFiles(unsavedFiles);
m_clangTool.addUnsavedFiles(unsavedFiles);
}
void SymbolsCollector::clear()
{
m_collectMacrosSourceFileCallbacks.clearSourceFiles();
m_collectSymbolsAction.clear();
m_clangTool = ClangTool();
}
void SymbolsCollector::collectSymbols()
{
auto tool = createTool();
auto tool = m_clangTool.createTool();
tool.run(clang::tooling::newFrontendActionFactory(&m_collectSymbolsAction,
&m_collectMacrosSourceFileCallbacks).get());