From 45d909b4711c496d608d10434bf6eed606d19193 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Kurowski?= Date: Thu, 15 Nov 2018 20:13:07 +0100 Subject: [PATCH] trie: return hasher to pool --- trie/iterator.go | 2 ++ trie/proof.go | 1 + 2 files changed, 3 insertions(+) diff --git a/trie/iterator.go b/trie/iterator.go index 00b890eb89..77f1681665 100644 --- a/trie/iterator.go +++ b/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] { diff --git a/trie/proof.go b/trie/proof.go index 6cb8f4d5f7..d1bc6d5f9c 100644 --- a/trie/proof.go +++ b/trie/proof.go @@ -66,6 +66,7 @@ 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.