diff options
Diffstat (limited to 'clang-tools-extra/clangd/index/Background.cpp')
| -rw-r--r-- | clang-tools-extra/clangd/index/Background.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/clang-tools-extra/clangd/index/Background.cpp b/clang-tools-extra/clangd/index/Background.cpp index 7c734d39cb3..13c427110f0 100644 --- a/clang-tools-extra/clangd/index/Background.cpp +++ b/clang-tools-extra/clangd/index/Background.cpp @@ -619,11 +619,15 @@ BackgroundIndex::loadShards(std::vector<std::string> ChangedFiles) { llvm::StringSet<> LoadedShards; Rebuilder.startLoading(); for (const auto &File : ChangedFiles) { - ProjectInfo PI; - auto Cmd = CDB.getCompileCommand(File, &PI); + auto Cmd = CDB.getCompileCommand(File); if (!Cmd) continue; - BackgroundIndexStorage *IndexStorage = IndexStorageFactory(PI.SourceRoot); + + std::string ProjectRoot; + if (auto PI = CDB.getProjectInfo(File)) + ProjectRoot = std::move(PI->SourceRoot); + + BackgroundIndexStorage *IndexStorage = IndexStorageFactory(ProjectRoot); auto Dependencies = loadShard(*Cmd, IndexStorage, LoadedShards); for (const auto &Dependency : Dependencies) { if (!Dependency.NeedsReIndexing || FilesToIndex.count(Dependency.Path)) |

