mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-22 20:56:42 +00:00
simplify the loop logic
This commit is contained in:
parent
8bb0ce07d6
commit
088c5c7b1b
1 changed files with 1 additions and 17 deletions
|
|
@ -307,28 +307,12 @@ func (t *Tree) Snapshots(root common.Hash, limits int, nodisk bool) []Snapshot {
|
||||||
t.lock.RLock()
|
t.lock.RLock()
|
||||||
defer t.lock.RUnlock()
|
defer t.lock.RUnlock()
|
||||||
|
|
||||||
if limits == 0 {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
layer := t.layers[root]
|
|
||||||
if layer == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
var ret []Snapshot
|
var ret []Snapshot
|
||||||
for {
|
for layer := t.layers[root]; layer != nil && limits != 0; layer, limits = layer.Parent(), limits-1 {
|
||||||
if _, isdisk := layer.(*diskLayer); isdisk && nodisk {
|
if _, isdisk := layer.(*diskLayer); isdisk && nodisk {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
ret = append(ret, layer)
|
ret = append(ret, layer)
|
||||||
limits -= 1
|
|
||||||
if limits == 0 {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
parent := layer.Parent()
|
|
||||||
if parent == nil {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
layer = parent
|
|
||||||
}
|
}
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue