diff options
Diffstat (limited to 'src/literal.h')
-rw-r--r-- | src/literal.h | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/literal.h b/src/literal.h index 4f936153d..c58dbb35c 100644 --- a/src/literal.h +++ b/src/literal.h @@ -528,18 +528,19 @@ template<> struct hash<wasm::Literal> { a.getBits(bytes); int64_t chunks[2]; memcpy(chunks, bytes, sizeof(chunks)); - return wasm::rehash(wasm::rehash(uint64_t(hash<uint32_t>()(a.type.getID())), - uint64_t(hash<int64_t>()(chunks[0]))), - uint64_t(hash<int64_t>()(chunks[1]))); + auto digest = wasm::hash(a.type.getID()); + wasm::rehash(digest, chunks[0]); + wasm::rehash(digest, chunks[1]); + return digest; } }; template<> struct hash<wasm::Literals> { size_t operator()(const wasm::Literals& a) const { - size_t h = wasm::rehash(uint64_t(0), uint64_t(a.size())); + auto digest = wasm::hash(a.size()); for (const auto& lit : a) { - h = wasm::rehash(uint64_t(h), uint64_t(hash<wasm::Literal>{}(lit))); + wasm::rehash(digest, lit); } - return h; + return digest; } }; template<> struct less<wasm::Literal> { |