diff options
author | Sam McCall <sam.mccall@gmail.com> | 2018-07-04 08:27:28 +0000 |
---|---|---|
committer | Sam McCall <sam.mccall@gmail.com> | 2018-07-04 08:27:28 +0000 |
commit | 7c96bb6e2ff74b32a0081b9407f769c9c0c6e270 (patch) | |
tree | a9f7bb70df82b73429380daf545493be27ee6e62 | |
parent | e8e01143ec642be7a1f7e8936254071a86cd9630 (diff) | |
download | bcm5719-llvm-7c96bb6e2ff74b32a0081b9407f769c9c0c6e270.tar.gz bcm5719-llvm-7c96bb6e2ff74b32a0081b9407f769c9c0c6e270.zip |
[clangd] FileDistance: don't add duplicate edges
llvm-svn: 336242
-rw-r--r-- | clang-tools-extra/clangd/FileDistance.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/clang-tools-extra/clangd/FileDistance.cpp b/clang-tools-extra/clangd/FileDistance.cpp index 74cbc6110e9..49fe56e0508 100644 --- a/clang-tools-extra/clangd/FileDistance.cpp +++ b/clang-tools-extra/clangd/FileDistance.cpp @@ -72,7 +72,9 @@ FileDistance::FileDistance(StringMap<SourceParams> Sources, for (unsigned I = 0; !Rest.empty(); ++I) { Rest = parent_path(Rest, sys::path::Style::posix); auto NextHash = hash_value(Rest); - DownEdges[NextHash].push_back(Hash); + auto &Down = DownEdges[NextHash]; + if (std::find(Down.begin(), Down.end(), Hash) == Down.end()) + DownEdges[NextHash].push_back(Hash); // We can't just break after MaxUpTraversals, must still set DownEdges. if (I > S.getValue().MaxUpTraversals) { if (Cache.find(Hash) != Cache.end()) |