# # # patch "merkle_tree.hh" # from [ac7370ade9ce9d2acce480349671d52061eea41f] # to [2eee2ed38a708cc457c4d80b970f27817b60d393] # ============================================================ --- merkle_tree.hh ac7370ade9ce9d2acce480349671d52061eea41f +++ merkle_tree.hh 2eee2ed38a708cc457c4d80b970f27817b60d393 @@ -105,26 +105,24 @@ */ typedef std::pair merkle_node_id; namespace hashmap { - struct merkle_node_id_hash - { - string_hash sh; - size_t operator()(merkle_node_id const & m) const - { - return sh(m.first()) + m.second; - } - }; + struct merkle_node_id_hash_traits + { + static const size_t bucket_size = 4; + static const size_t min_buckets = 8; + string_hash_traits sh; + size_t operator()(merkle_node_id const & m) const + { + return sh(m.first()) + m.second; + } + bool operator()(merkle_node_id const & l, + merkle_node_id const & r) + { + return l.second == r.second && l.first == r.first; + } + }; } -struct merkle_node_id_eq -{ - bool operator()(merkle_node_id const & a, - merkle_node_id const & b) const - { - return a.second == b.second && a.first == b.first; - } -}; typedef hashmap::hash_map merkle_table; + hashmap::merkle_node_id_hash_traits> merkle_table; size_t prefix_length_in_bits(size_t level);