From 2866c6e46d36670043a5bcd3f3650f8b797c0145 Mon Sep 17 00:00:00 2001 From: Arthur Britto Date: Wed, 13 Jun 2012 15:49:35 -0700 Subject: [PATCH] Add support for hashing uint160. --- src/SHAMap.cpp | 11 +++++++++++ src/SHAMap.h | 1 + 2 files changed, 12 insertions(+) diff --git a/src/SHAMap.cpp b/src/SHAMap.cpp index c84eec80e0..ac600171e5 100644 --- a/src/SHAMap.cpp +++ b/src/SHAMap.cpp @@ -18,16 +18,27 @@ std::size_t hash_value(const SHAMapNode& mn) { std::size_t seed = theApp->getNonceST(); + boost::hash_combine(seed, mn.getDepth()); + return mn.getNodeID().hash_combine(seed); } std::size_t hash_value(const uint256& u) { std::size_t seed = theApp->getNonceST(); + return u.hash_combine(seed); } +std::size_t hash_value(const uint160& u) +{ + std::size_t seed = theApp->getNonceST(); + + return u.hash_combine(seed); +} + + SHAMap::SHAMap(uint32 seq) : mSeq(seq), mState(Modifying) { root = boost::make_shared(mSeq, SHAMapNode(0, uint256())); diff --git a/src/SHAMap.h b/src/SHAMap.h index b9090c963d..0588096c7a 100644 --- a/src/SHAMap.h +++ b/src/SHAMap.h @@ -78,6 +78,7 @@ public: extern std::size_t hash_value(const SHAMapNode& mn); extern std::size_t hash_value(const uint256& u); +extern std::size_t hash_value(const uint160& u); class SHAMapItem { // an item stored in a SHAMap