DRY up and document magic constant used for hash maps

This commit is contained in:
Vinnie Falco
2013-06-07 11:35:56 -07:00
parent 3cf2fb884d
commit db9f62646d
3 changed files with 25 additions and 19 deletions

View File

@@ -109,16 +109,8 @@ bool CBase58Data::operator> (const CBase58Data& b58) const { return CompareTo(b5
std::size_t hash_value(const CBase58Data& b58)
{
// VFALCO: TODO, figure out what this is for and whether or
// not it affects the protocol specification.
//
// NOTE, this constant is used elsewhere as well.
// should it be DRY?
//
const std::size_t mysteriousConstant = 0x9e3779b9;
std::size_t seed = HashMaps::getInstance ().getNonce <size_t> ()
+ (b58.nVersion * mysteriousConstant);
+ (b58.nVersion * HashMaps::goldenRatio);
boost::hash_combine (seed, b58.vchData);