simplify the loop logic

This commit is contained in:
maskpp 2025-11-02 16:19:12 +08:00
parent 8bb0ce07d6
commit 088c5c7b1b

View file

@ -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
} }