Browse Source

Merge pull request #4656

5cbda4f Changed LevelDB cursors to use scoped pointers to ensure destruction when going out of scope. (Ross Nicoll)
0.10
Wladimir J. van der Laan 11 years ago
parent
commit
b3ec053082
No known key found for this signature in database
GPG Key ID: 74810B012346C9A6
  1. 6
      src/txdb.cpp

6
src/txdb.cpp

@ -103,7 +103,7 @@ bool CBlockTreeDB::ReadLastBlockFile(int &nFile) { @@ -103,7 +103,7 @@ bool CBlockTreeDB::ReadLastBlockFile(int &nFile) {
}
bool CCoinsViewDB::GetStats(CCoinsStats &stats) {
leveldb::Iterator *pcursor = db.NewIterator();
boost::scoped_ptr<leveldb::Iterator> pcursor(db.NewIterator());
pcursor->SeekToFirst();
CHashWriter ss(SER_GETHASH, PROTOCOL_VERSION);
@ -146,7 +146,6 @@ bool CCoinsViewDB::GetStats(CCoinsStats &stats) { @@ -146,7 +146,6 @@ bool CCoinsViewDB::GetStats(CCoinsStats &stats) {
return error("%s : Deserialize or I/O error - %s", __func__, e.what());
}
}
delete pcursor;
stats.nHeight = mapBlockIndex.find(GetBestBlock())->second->nHeight;
stats.hashSerialized = ss.GetHash();
stats.nTotalAmount = nTotalAmount;
@ -178,7 +177,7 @@ bool CBlockTreeDB::ReadFlag(const std::string &name, bool &fValue) { @@ -178,7 +177,7 @@ bool CBlockTreeDB::ReadFlag(const std::string &name, bool &fValue) {
bool CBlockTreeDB::LoadBlockIndexGuts()
{
leveldb::Iterator *pcursor = NewIterator();
boost::scoped_ptr<leveldb::Iterator> pcursor(NewIterator());
CDataStream ssKeySet(SER_DISK, CLIENT_VERSION);
ssKeySet << make_pair('b', uint256(0));
@ -224,7 +223,6 @@ bool CBlockTreeDB::LoadBlockIndexGuts() @@ -224,7 +223,6 @@ bool CBlockTreeDB::LoadBlockIndexGuts()
return error("%s : Deserialize or I/O error - %s", __func__, e.what());
}
}
delete pcursor;
return true;
}

Loading…
Cancel
Save