Author: sammccall Date: Thu Dec 21 12:11:46 2017 New Revision: 321302 URL: http://llvm.org/viewvc/llvm-project?rev=321302&view=rev Log: [clangd] Don't re-hash SymbolID in maps, just use the SHA1 data
Modified: clang-tools-extra/trunk/clangd/index/Index.cpp clang-tools-extra/trunk/clangd/index/Index.h Modified: clang-tools-extra/trunk/clangd/index/Index.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/index/Index.cpp?rev=321302&r1=321301&r2=321302&view=diff ============================================================================== --- clang-tools-extra/trunk/clangd/index/Index.cpp (original) +++ clang-tools-extra/trunk/clangd/index/Index.cpp Thu Dec 21 12:11:46 2017 @@ -24,7 +24,7 @@ llvm::raw_ostream &operator<<(llvm::raw_ void operator>>(llvm::StringRef Str, SymbolID &ID) { std::string HexString = fromHex(Str); - assert(HexString.size() == 20); + assert(HexString.size() == ID.HashValue.size()); std::copy(HexString.begin(), HexString.end(), ID.HashValue.begin()); } Modified: clang-tools-extra/trunk/clangd/index/Index.h URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/index/Index.h?rev=321302&r1=321301&r2=321302&view=diff ============================================================================== --- clang-tools-extra/trunk/clangd/index/Index.h (original) +++ clang-tools-extra/trunk/clangd/index/Index.h Thu Dec 21 12:11:46 2017 @@ -52,7 +52,9 @@ public: private: friend llvm::hash_code hash_value(const SymbolID &ID) { - return hash_value(ArrayRef<uint8_t>(ID.HashValue)); + // We already have a good hash, just return the first bytes. + static_assert(sizeof(size_t) <= 20, "size_t longer than SHA1!"); + return *reinterpret_cast<const size_t *>(ID.HashValue.data()); } friend llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, const SymbolID &ID); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits