mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-06-12 09:51:36 +00:00
trie/bintrie: use type alias for HashedNode
Replace the single-field struct with a type alias on common.Hash. Both have identical layout (32 bytes, no pointers) and noscan span placement, but the alias matches master's style and reads more naturally. A zero-arg Hash() method keeps call sites terse.
This commit is contained in:
parent
5f94d26db8
commit
84c61897b3
5 changed files with 22 additions and 21 deletions
|
|
@ -18,7 +18,8 @@ package bintrie
|
|||
|
||||
import "github.com/ethereum/go-ethereum/common"
|
||||
|
||||
// HashedNode is an unresolved node (hash only).
|
||||
type HashedNode struct {
|
||||
hash common.Hash
|
||||
}
|
||||
// HashedNode is an unresolved node — only its hash is known.
|
||||
type HashedNode common.Hash
|
||||
|
||||
// Hash returns the node's hash.
|
||||
func (h HashedNode) Hash() common.Hash { return common.Hash(h) }
|
||||
|
|
|
|||
|
|
@ -126,12 +126,12 @@ func (it *binaryNodeIterator) Next(descend bool) bool {
|
|||
return false
|
||||
}
|
||||
hn := it.store.getHashed(it.current.Index())
|
||||
data, err := it.trie.nodeResolver(it.Path(), hn.hash)
|
||||
data, err := it.trie.nodeResolver(it.Path(), hn.Hash())
|
||||
if err != nil {
|
||||
it.lastErr = err
|
||||
return false
|
||||
}
|
||||
resolved, err := it.store.DeserializeNodeWithHash(data, len(it.stack)-1, hn.hash)
|
||||
resolved, err := it.store.DeserializeNodeWithHash(data, len(it.stack)-1, hn.Hash())
|
||||
if err != nil {
|
||||
it.lastErr = err
|
||||
return false
|
||||
|
|
|
|||
|
|
@ -151,7 +151,7 @@ func (s *NodeStore) freeHashedNode(idx uint32) {
|
|||
|
||||
func (s *NodeStore) newHashedRef(hash common.Hash) NodeRef {
|
||||
idx := s.allocHashed()
|
||||
*s.getHashed(idx) = HashedNode{hash: hash}
|
||||
*s.getHashed(idx) = HashedNode(hash)
|
||||
return MakeRef(KindHashed, idx)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ func (s *NodeStore) ComputeHash(ref NodeRef) common.Hash {
|
|||
case KindStem:
|
||||
return s.getStem(ref.Index()).Hash()
|
||||
case KindHashed:
|
||||
return s.getHashed(ref.Index()).hash
|
||||
return s.getHashed(ref.Index()).Hash()
|
||||
case KindEmpty:
|
||||
return common.Hash{}
|
||||
default:
|
||||
|
|
@ -259,7 +259,7 @@ func (s *NodeStore) ToDot(ref NodeRef, parent, path string) string {
|
|||
case KindHashed:
|
||||
hn := s.getHashed(ref.Index())
|
||||
me := fmt.Sprintf("hash%s", path)
|
||||
ret := fmt.Sprintf("%s [label=\"%x\"]\n", me, hn.hash)
|
||||
ret := fmt.Sprintf("%s [label=\"%x\"]\n", me, hn.Hash())
|
||||
ret = fmt.Sprintf("%s %s -> %s\n", ret, parent, me)
|
||||
return ret
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -72,11 +72,11 @@ func (s *NodeStore) getSingle(ref NodeRef, stem []byte, suffix byte, resolver No
|
|||
hn := s.getHashed(cur.Index())
|
||||
parentNode := s.getInternal(parentIdx)
|
||||
path := makeKeyPath(int(parentNode.depth), stem)
|
||||
data, err := resolver(path, hn.hash)
|
||||
data, err := resolver(path, hn.Hash())
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("getSingle resolve error: %w", err)
|
||||
}
|
||||
resolved, err := s.DeserializeNodeWithHash(data, int(parentNode.depth)+1, hn.hash)
|
||||
resolved, err := s.DeserializeNodeWithHash(data, int(parentNode.depth)+1, hn.Hash())
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("getSingle deserialization error: %w", err)
|
||||
}
|
||||
|
|
@ -143,11 +143,11 @@ func (s *NodeStore) getValuesAtStem(ref NodeRef, stem []byte, resolver NodeResol
|
|||
hn := s.getHashed(cur.Index())
|
||||
parentNode := s.getInternal(parentIdx)
|
||||
path := makeKeyPath(int(parentNode.depth), stem)
|
||||
data, err := resolver(path, hn.hash)
|
||||
data, err := resolver(path, hn.Hash())
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("getValuesAtStem resolve error: %w", err)
|
||||
}
|
||||
resolved, err := s.DeserializeNodeWithHash(data, int(parentNode.depth)+1, hn.hash)
|
||||
resolved, err := s.DeserializeNodeWithHash(data, int(parentNode.depth)+1, hn.Hash())
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("getValuesAtStem deserialization error: %w", err)
|
||||
}
|
||||
|
|
@ -251,11 +251,11 @@ func (s *NodeStore) insertSingleInternal(stem []byte, suffix byte, value []byte,
|
|||
parentNode := s.getInternal(p.internalIdx)
|
||||
hn := s.getHashed(cur.Index())
|
||||
path := makeKeyPath(int(parentNode.depth), stem)
|
||||
data, err := resolver(path, hn.hash)
|
||||
data, err := resolver(path, hn.Hash())
|
||||
if err != nil {
|
||||
return fmt.Errorf("insertSingle resolve error: %w", err)
|
||||
}
|
||||
resolved, err := s.DeserializeNodeWithHash(data, int(parentNode.depth)+1, hn.hash)
|
||||
resolved, err := s.DeserializeNodeWithHash(data, int(parentNode.depth)+1, hn.Hash())
|
||||
if err != nil {
|
||||
return fmt.Errorf("insertSingle deserialization error: %w", err)
|
||||
}
|
||||
|
|
@ -370,11 +370,11 @@ func (s *NodeStore) insertValuesAtStem(ref NodeRef, stem []byte, values [][]byte
|
|||
}
|
||||
hn := s.getHashed(node.left.Index())
|
||||
path := makeKeyPath(int(node.depth), stem)
|
||||
data, err := resolver(path, hn.hash)
|
||||
data, err := resolver(path, hn.Hash())
|
||||
if err != nil {
|
||||
return ref, fmt.Errorf("InsertValuesAtStem resolve error: %w", err)
|
||||
}
|
||||
resolved, err := s.DeserializeNodeWithHash(data, int(node.depth)+1, hn.hash)
|
||||
resolved, err := s.DeserializeNodeWithHash(data, int(node.depth)+1, hn.Hash())
|
||||
if err != nil {
|
||||
return ref, fmt.Errorf("InsertValuesAtStem deserialization error: %w", err)
|
||||
}
|
||||
|
|
@ -393,11 +393,11 @@ func (s *NodeStore) insertValuesAtStem(ref NodeRef, stem []byte, values [][]byte
|
|||
}
|
||||
hn := s.getHashed(node.right.Index())
|
||||
path := makeKeyPath(int(node.depth), stem)
|
||||
data, err := resolver(path, hn.hash)
|
||||
data, err := resolver(path, hn.Hash())
|
||||
if err != nil {
|
||||
return ref, fmt.Errorf("InsertValuesAtStem resolve error: %w", err)
|
||||
}
|
||||
resolved, err := s.DeserializeNodeWithHash(data, int(node.depth)+1, hn.hash)
|
||||
resolved, err := s.DeserializeNodeWithHash(data, int(node.depth)+1, hn.Hash())
|
||||
if err != nil {
|
||||
return ref, fmt.Errorf("InsertValuesAtStem deserialization error: %w", err)
|
||||
}
|
||||
|
|
@ -437,11 +437,11 @@ func (s *NodeStore) insertValuesAtStem(ref NodeRef, stem []byte, values [][]byte
|
|||
if resolver == nil {
|
||||
return ref, errors.New("InsertValuesAtStem: resolver is nil")
|
||||
}
|
||||
data, err := resolver(path, hn.hash)
|
||||
data, err := resolver(path, hn.Hash())
|
||||
if err != nil {
|
||||
return ref, fmt.Errorf("InsertValuesAtStem resolve error: %w", err)
|
||||
}
|
||||
resolved, err := s.DeserializeNodeWithHash(data, depth, hn.hash)
|
||||
resolved, err := s.DeserializeNodeWithHash(data, depth, hn.Hash())
|
||||
if err != nil {
|
||||
return ref, fmt.Errorf("InsertValuesAtStem deserialization error: %w", err)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue