Author: sammccall
Date: Wed Jul  4 01:27:28 2018
New Revision: 336242

URL: http://llvm.org/viewvc/llvm-project?rev=336242&view=rev
Log:
[clangd] FileDistance: don't add duplicate edges

Modified:
    clang-tools-extra/trunk/clangd/FileDistance.cpp

Modified: clang-tools-extra/trunk/clangd/FileDistance.cpp
URL: 
http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/FileDistance.cpp?rev=336242&r1=336241&r2=336242&view=diff
==============================================================================
--- clang-tools-extra/trunk/clangd/FileDistance.cpp (original)
+++ clang-tools-extra/trunk/clangd/FileDistance.cpp Wed Jul  4 01:27:28 2018
@@ -72,7 +72,9 @@ FileDistance::FileDistance(StringMap<Sou
     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())


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

Reply via email to