From 77a00b48d28c39b49194ce7c30584424bbc012c2 Mon Sep 17 00:00:00 2001 From: qianbin Date: Wed, 12 Jan 2022 01:01:15 +0800 Subject: [PATCH] trie: apply fastNodeEncoder to StackTrie --- trie/stacktrie.go | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/trie/stacktrie.go b/trie/stacktrie.go index 76258c31123c2..77cc5d6e96d5f 100644 --- a/trie/stacktrie.go +++ b/trie/stacktrie.go @@ -376,26 +376,26 @@ func (st *StackTrie) hash() { switch st.nodeType { case branchNode: - var nodes [17]node + var n rawFullNode for i, child := range st.children { if child == nil { - nodes[i] = nilValueNode + n[i] = nilValueNode continue } child.hash() if len(child.val) < 32 { - nodes[i] = rawNode(child.val) + n[i] = rawNode(child.val) } else { - nodes[i] = hashNode(child.val) + n[i] = hashNode(child.val) } st.children[i] = nil // Reclaim mem from subtree returnToPool(child) } - nodes[16] = nilValueNode + n[16] = nilValueNode h = newHasher(false) defer returnHasherToPool(h) h.tmp.Reset() - if err := rlp.Encode(&h.tmp, nodes); err != nil { + if err := frlp.Encode(&h.tmp, n); err != nil { panic(err) } case extNode: @@ -409,14 +409,11 @@ func (st *StackTrie) hash() { } else { valuenode = hashNode(st.children[0].val) } - n := struct { - Key []byte - Val node - }{ + n := &rawShortNode{ Key: hexToCompact(st.key), Val: valuenode, } - if err := rlp.Encode(&h.tmp, n); err != nil { + if err := frlp.Encode(&h.tmp, n); err != nil { panic(err) } returnToPool(st.children[0])