[clangd] lower_bound -> bsearch, NFC
authorSam McCall <sam.mccall@gmail.com>
Wed, 17 Apr 2019 07:00:36 +0000 (07:00 +0000)
committerSam McCall <sam.mccall@gmail.com>
Wed, 17 Apr 2019 07:00:36 +0000 (07:00 +0000)
llvm-svn: 358561

clang-tools-extra/clangd/index/Symbol.cpp
clang-tools-extra/clangd/index/dex/PostingList.cpp

index 5753571..cc4ce34 100644 (file)
@@ -35,9 +35,8 @@ float quality(const Symbol &S) {
 }
 
 SymbolSlab::const_iterator SymbolSlab::find(const SymbolID &ID) const {
-  auto It = std::lower_bound(
-      Symbols.begin(), Symbols.end(), ID,
-      [](const Symbol &S, const SymbolID &I) { return S.ID < I; });
+  auto It =
+      llvm::bsearch(Symbols, [&](const Symbol &S) { return !(S.ID < ID); });
   if (It != Symbols.end() && It->ID == ID)
     return It;
   return Symbols.end();
index 44a668b..67ed070 100644 (file)
@@ -9,6 +9,7 @@
 #include "PostingList.h"
 #include "Iterator.h"
 #include "Token.h"
+#include "llvm/ADT/STLExtras.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MathExtras.h"
 
@@ -49,7 +50,8 @@ public:
       return;
     advanceToChunk(ID);
     // Try to find ID within current chunk.
-    CurrentID = std::lower_bound(CurrentID, std::end(DecompressedChunk), ID);
+    CurrentID = llvm::bsearch(CurrentID, DecompressedChunk.end(),
+                              [&](const DocID D) { return D >= ID; });
     normalizeCursor();
   }
 
@@ -100,10 +102,9 @@ private:
   void advanceToChunk(DocID ID) {
     if ((CurrentChunk != Chunks.end() - 1) &&
         ((CurrentChunk + 1)->Head <= ID)) {
-      // Find the next chunk with Head >= ID.
-      CurrentChunk = std::lower_bound(
-          CurrentChunk + 1, Chunks.end(), ID,
-          [](const Chunk &C, const DocID ID) { return C.Head <= ID; });
+      CurrentChunk =
+          llvm::bsearch(CurrentChunk + 1, Chunks.end(),
+                        [&](const Chunk &C) { return C.Head >= ID; });
       --CurrentChunk;
       DecompressedChunk = CurrentChunk->decompress();
       CurrentID = DecompressedChunk.begin();