aboutsummaryrefslogtreecommitdiffstats
path: root/core/state/iterator.go
diff options
context:
space:
mode:
authorFelix Lange <fjl@twurst.com>2017-04-13 20:41:24 +0800
committerFelix Lange <fjl@twurst.com>2017-04-25 08:14:31 +0800
commit4047ccad2fb73fd2cfd69bf5b8cbfa788871ce0f (patch)
tree702ff4ccb7e70b4f9a063df145a13d2d54ad1292 /core/state/iterator.go
parenta13e920af01692cb07a520cda688f1cc5b5469dd (diff)
downloadgo-tangerine-4047ccad2fb73fd2cfd69bf5b8cbfa788871ce0f.tar
go-tangerine-4047ccad2fb73fd2cfd69bf5b8cbfa788871ce0f.tar.gz
go-tangerine-4047ccad2fb73fd2cfd69bf5b8cbfa788871ce0f.tar.bz2
go-tangerine-4047ccad2fb73fd2cfd69bf5b8cbfa788871ce0f.tar.lz
go-tangerine-4047ccad2fb73fd2cfd69bf5b8cbfa788871ce0f.tar.xz
go-tangerine-4047ccad2fb73fd2cfd69bf5b8cbfa788871ce0f.tar.zst
go-tangerine-4047ccad2fb73fd2cfd69bf5b8cbfa788871ce0f.zip
trie: add start key to NodeIterator constructors
The 'step' method is split into two parts, 'peek' and 'push'. peek returns the next state but doesn't make it current. The end of iteration was previously tracked by setting 'trie' to nil. End of iteration is now tracked using the 'iteratorEnd' error, which is slightly cleaner and requires less code.
Diffstat (limited to 'core/state/iterator.go')
-rw-r--r--core/state/iterator.go4
1 files changed, 2 insertions, 2 deletions
diff --git a/core/state/iterator.go b/core/state/iterator.go
index d2dd5a74e..a8a2722ae 100644
--- a/core/state/iterator.go
+++ b/core/state/iterator.go
@@ -75,7 +75,7 @@ func (it *NodeIterator) step() error {
}
// Initialize the iterator if we've just started
if it.stateIt == nil {
- it.stateIt = it.state.trie.NodeIterator()
+ it.stateIt = it.state.trie.NodeIterator(nil)
}
// If we had data nodes previously, we surely have at least state nodes
if it.dataIt != nil {
@@ -118,7 +118,7 @@ func (it *NodeIterator) step() error {
if err != nil {
return err
}
- it.dataIt = dataTrie.NodeIterator()
+ it.dataIt = dataTrie.NodeIterator(nil)
if !it.dataIt.Next(true) {
it.dataIt = nil
}