Browse Source
Merge pull request #5115
33dfbf5
rpc: Fix leveldb iterator leak, and flush before `gettxoutsetinfo` (Wladimir J. van der Laan)
pull/145/head
Wladimir J. van der Laan
10 years ago
No known key found for this signature in database
GPG Key ID: 74810B012346C9A6
2 changed files with
2 additions and
1 deletions
-
src/rpcblockchain.cpp
-
src/txdb.cpp
|
|
@ -319,6 +319,7 @@ Value gettxoutsetinfo(const Array& params, bool fHelp) |
|
|
|
Object ret; |
|
|
|
|
|
|
|
CCoinsStats stats; |
|
|
|
pcoinsTip->Flush(); |
|
|
|
if (pcoinsTip->GetStats(stats)) { |
|
|
|
ret.push_back(Pair("height", (int64_t)stats.nHeight)); |
|
|
|
ret.push_back(Pair("bestblock", stats.hashBlock.GetHex())); |
|
|
|
|
|
@ -104,7 +104,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. */ |
|
|
|
leveldb::Iterator *pcursor = const_cast<CLevelDBWrapper*>(&db)->NewIterator(); |
|
|
|
boost::scoped_ptr<leveldb::Iterator> pcursor(const_cast<CLevelDBWrapper*>(&db)->NewIterator()); |
|
|
|
pcursor->SeekToFirst(); |
|
|
|
|
|
|
|
CHashWriter ss(SER_GETHASH, PROTOCOL_VERSION); |
|
|
|