mirror of
https://gitlab.com/pulsechaincom/erigon-pulse.git
synced 2025-01-10 13:01:21 +00:00
e3: ots underflow fixes (#860)
This commit is contained in:
parent
3f234f90d0
commit
040fefda7b
@ -558,35 +558,23 @@ func (it *InvertedIterator) advanceInDb() {
|
||||
//Asc: [from, to) AND from > to
|
||||
//Desc: [from, to) AND from < to
|
||||
var keyBytes [8]byte
|
||||
if it.startTxNum < 0 {
|
||||
if it.orderAscend {
|
||||
_, v, err = it.cursor.First()
|
||||
if err != nil {
|
||||
// TODO pass error properly around
|
||||
panic(err)
|
||||
}
|
||||
} else {
|
||||
_, v, err = it.cursor.Last()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if it.startTxNum > 0 {
|
||||
binary.BigEndian.PutUint64(keyBytes[:], uint64(it.startTxNum))
|
||||
if v, err = it.cursor.SeekBothRange(it.key, keyBytes[:]); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
k, v, err = it.cursor.SeekExact(it.key)
|
||||
if v, err = it.cursor.SeekBothRange(it.key, keyBytes[:]); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
if v == nil {
|
||||
if !it.orderAscend {
|
||||
_, v, _ = it.cursor.PrevDup()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
if v == nil {
|
||||
if !it.orderAscend {
|
||||
_, v, _ = it.cursor.PrevDup()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
if v == nil {
|
||||
it.hasNextInDb = false
|
||||
return
|
||||
}
|
||||
it.hasNextInDb = false
|
||||
return
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user