forked from cerc-io/plugeth
trie: avoid loading the root node twice
New checks whether the root node is present by loading it from the database. Keep the node around instead of discarding it.
This commit is contained in:
parent
b19b7c39ac
commit
187d6a66a5
10
trie/trie.go
10
trie/trie.go
@ -93,13 +93,11 @@ func New(root common.Hash, db Database) (*Trie, error) {
|
||||
if db == nil {
|
||||
panic("trie.New: cannot use existing root without a database")
|
||||
}
|
||||
if v, _ := trie.db.Get(root[:]); len(v) == 0 {
|
||||
return nil, &MissingNodeError{
|
||||
RootHash: root,
|
||||
NodeHash: root,
|
||||
}
|
||||
rootnode, err := trie.resolveHash(root[:], nil, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
trie.root = hashNode(root.Bytes())
|
||||
trie.root = rootnode
|
||||
}
|
||||
return trie, nil
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user