瀏覽代碼

trie: return hasher to pool (#18116)

* trie: return hasher to pool

* trie: minor code formatting fix
Łukasz Kurowski 7 年之前
父節點
當前提交
68be45e5f8
共有 2 個文件被更改,包括 4 次插入0 次删除
  1. 2 0
      trie/iterator.go
  2. 2 0
      trie/proof.go

+ 2 - 0
trie/iterator.go

@@ -181,6 +181,8 @@ func (it *nodeIterator) LeafProof() [][]byte {
 	if len(it.stack) > 0 {
 		if _, ok := it.stack[len(it.stack)-1].node.(valueNode); ok {
 			hasher := newHasher(0, 0, nil)
+			defer returnHasherToPool(hasher)
+
 			proofs := make([][]byte, 0, len(it.stack))
 
 			for i, item := range it.stack[:len(it.stack)-1] {

+ 2 - 0
trie/proof.go

@@ -66,6 +66,8 @@ func (t *Trie) Prove(key []byte, fromLevel uint, proofDb ethdb.Putter) error {
 		}
 	}
 	hasher := newHasher(0, 0, nil)
+	defer returnHasherToPool(hasher)
+	
 	for i, n := range nodes {
 		// Don't bother checking for errors here since hasher panics
 		// if encoding doesn't work and we're not writing to any database.