diff --git a/src/dbwrapper.cpp b/src/dbwrapper.cpp index ff2bc8b4e8..87d46f3192 100644 --- a/src/dbwrapper.cpp +++ b/src/dbwrapper.cpp @@ -306,6 +306,12 @@ bool CDBWrapper::IsEmpty() return !(it->Valid()); } +void CDBIterator::SeekImpl(Span ssKey) +{ + leveldb::Slice slKey(CharCast(ssKey.data()), ssKey.size()); + piter->Seek(slKey); +} + CDBIterator::~CDBIterator() { delete piter; } bool CDBIterator::Valid() const { return piter->Valid(); } void CDBIterator::SeekToFirst() { piter->SeekToFirst(); } diff --git a/src/dbwrapper.h b/src/dbwrapper.h index 9016111209..aa2b31b160 100644 --- a/src/dbwrapper.h +++ b/src/dbwrapper.h @@ -140,6 +140,8 @@ private: const CDBWrapper &parent; leveldb::Iterator *piter; + void SeekImpl(Span ssKey); + public: /** @@ -158,8 +160,7 @@ public: DataStream ssKey{}; ssKey.reserve(DBWRAPPER_PREALLOC_KEY_SIZE); ssKey << key; - leveldb::Slice slKey(CharCast(ssKey.data()), ssKey.size()); - piter->Seek(slKey); + SeekImpl(ssKey); } void Next();