Minor bugfixes

Was "Handle obfuscation in CLevelDBIterator"

Zcash: Only bugfixes
This commit is contained in:
James O'Beirne 2015-10-08 00:44:10 -07:00 committed by Jack Grigg
parent 1ebf50b6da
commit 0d9524ba6b
No known key found for this signature in database
GPG Key ID: 665DBCD284F7DAFF
3 changed files with 11 additions and 6 deletions

View File

@ -95,7 +95,7 @@ bool CLevelDBWrapper::IsEmpty()
it->SeekToFirst();
return !(it->Valid());
}
CLevelDBIterator::~CLevelDBIterator() { delete piter; }
bool CLevelDBIterator::Valid() { return piter->Valid(); }
void CLevelDBIterator::SeekToFirst() { piter->SeekToFirst(); }

View File

@ -67,7 +67,12 @@ private:
leveldb::Iterator *piter;
public:
CLevelDBIterator(leveldb::Iterator *piterIn) : piter(piterIn) {}
/**
* @param[in] piterIn The original leveldb iterator.
*/
CLevelDBIterator(leveldb::Iterator *piterIn) :
piter(piterIn) { };
~CLevelDBIterator();
bool Valid();
@ -229,7 +234,7 @@ public:
CLevelDBIterator *NewIterator()
{
return new CLevelDBIterator(pdb->NewIterator(iteroptions));
{
}
/**
* Return true if the database managed by this class contains no entries.

View File

@ -162,7 +162,7 @@ bool CCoinsViewDB::GetStats(CCoinsStats &stats) const {
/* It seems that there are no "const iterators" for LevelDB. Since we
only need read operations on it, use a const-cast to get around
that restriction. */
boost::scoped_ptr<CLevelDBWrapper> pcursor(const_cast<CLevelDBWrapper*>(&db)->NewIterator());
boost::scoped_ptr<CLevelDBIterator> pcursor(const_cast<CLevelDBWrapper*>(&db)->NewIterator());
pcursor->Seek('c');
CHashWriter ss(SER_GETHASH, PROTOCOL_VERSION);
@ -249,9 +249,9 @@ bool CBlockTreeDB::ReadFlag(const std::string &name, bool &fValue) {
bool CBlockTreeDB::LoadBlockIndexGuts()
{
boost::scoped_ptr<leveldb::Iterator> pcursor(NewIterator());
boost::scoped_ptr<CLevelDBIterator> pcursor(NewIterator());
pcursor->Seek(make_pair('b', uint256(0)));
pcursor->Seek(make_pair('b', uint256()));
// Load mapBlockIndex
while (pcursor->Valid()) {