mirror of
https://github.com/matrix-construct/construct
synced 2025-02-26 13:40:20 +01:00
ircd::db: Assert valid iterator prior to all relevant operations.
This commit is contained in:
parent
73a3a4cb35
commit
6e7d63ce6d
1 changed files with 22 additions and 5 deletions
27
ircd/db.cc
27
ircd/db.cc
|
@ -5179,11 +5179,24 @@ ircd::db::_seek_(rocksdb::Iterator &it,
|
||||||
|
|
||||||
switch(p)
|
switch(p)
|
||||||
{
|
{
|
||||||
case pos::NEXT: it.Next(); break;
|
case pos::NEXT:
|
||||||
case pos::PREV: it.Prev(); break;
|
assert(valid(it));
|
||||||
case pos::FRONT: it.SeekToFirst(); break;
|
it.Next();
|
||||||
case pos::BACK: it.SeekToLast(); break;
|
break;
|
||||||
default:
|
|
||||||
|
case pos::PREV:
|
||||||
|
assert(valid(it));
|
||||||
|
it.Prev();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case pos::FRONT:
|
||||||
|
it.SeekToFirst();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case pos::BACK:
|
||||||
|
it.SeekToLast();
|
||||||
|
break;
|
||||||
|
|
||||||
case pos::END:
|
case pos::END:
|
||||||
{
|
{
|
||||||
it.SeekToLast();
|
it.SeekToLast();
|
||||||
|
@ -5192,6 +5205,10 @@ ircd::db::_seek_(rocksdb::Iterator &it,
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
assert(false);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return it;
|
return it;
|
||||||
|
|
Loading…
Add table
Reference in a new issue