ilya-biryukov added inline comments.

================
Comment at: clangd/index/Background.cpp:197
+        Cmd.CommandLine.push_back("-resource-dir=" + ResourceDir);
+        const std::string FileName = Cmd.Filename;
+        if (auto Error = index(std::move(Cmd), Storage))
----------------
use `llvm::StringRef`


================
Comment at: clangd/index/Background.cpp:259
+      // Skip if file is already up to date.
+      auto DigestIt = IndexedFileDigests.try_emplace(Path);
+      if (!DigestIt.second && DigestIt.first->second == Hash)
----------------
I now see that my previous comment about lock/unlock for each file was wrong in 
the first place.
It feels that's we'd better keep the `IndexedFileDigests`  and `IndexedSymbols` 
in sync.

Why don't we update the digest in the next loop that actually updates the 
symbols?


================
Comment at: clangd/index/Background.h:111
+    bool NeedsReIndexing;
+    Source(llvm::StringRef Path, bool NeedsReIndexing = true)
+        : Path(Path), NeedsReIndexing(NeedsReIndexing) {}
----------------
NIT: maybe remove the constructor? plain structs can easily be initialized with 
init lists and adding a constructor forbids per-field assignment, which is a 
bit nicer in some cases.
Not very important, since it's a private API, but still.


Repository:
  rCTE Clang Tools Extra

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D55224/new/

https://reviews.llvm.org/D55224



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to