summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam McCall <sam.mccall@gmail.com>2018-07-04 08:27:28 +0000
committerSam McCall <sam.mccall@gmail.com>2018-07-04 08:27:28 +0000
commit7c96bb6e2ff74b32a0081b9407f769c9c0c6e270 (patch)
treea9f7bb70df82b73429380daf545493be27ee6e62
parente8e01143ec642be7a1f7e8936254071a86cd9630 (diff)
downloadbcm5719-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.cpp4
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())
OpenPOWER on IntegriCloud