aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2014-10-27 10:35:59 +0100
committerWladimir J. van der Laan <laanwj@gmail.com>2014-10-27 11:05:20 +0100
commitd9702bcf7ca616b086c3a62a8efa0e10e9a9e5f7 (patch)
tree39eec5b6aeb7e1f9c4b27b4a5cf1aa62b6d21047
parent2ffdf21ce39fc3133fc028fb51d49cd7479eaa43 (diff)
parent33dfbf57d34882aef7b83bc5ea9bf561e1f3e7b0 (diff)
Merge pull request #5115
33dfbf5 rpc: Fix leveldb iterator leak, and flush before `gettxoutsetinfo` (Wladimir J. van der Laan)
-rw-r--r--src/rpcblockchain.cpp1
-rw-r--r--src/txdb.cpp2
2 files changed, 2 insertions, 1 deletions
diff --git a/src/rpcblockchain.cpp b/src/rpcblockchain.cpp
index 02b510aa41..78f5569895 100644
--- a/src/rpcblockchain.cpp
+++ b/src/rpcblockchain.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()));
diff --git a/src/txdb.cpp b/src/txdb.cpp
index cb9f150011..8a73ce961c 100644
--- a/src/txdb.cpp
+++ b/src/txdb.cpp
@@ -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);