diff options
| author | Wladimir J. van der Laan <[email protected]> | 2014-10-21 16:08:20 +0200 |
|---|---|---|
| committer | Wladimir J. van der Laan <[email protected]> | 2014-10-21 16:16:55 +0200 |
| commit | 33dfbf57d34882aef7b83bc5ea9bf561e1f3e7b0 (patch) | |
| tree | a0e9ff5fa63c507e2dda9c8a54da3e523b7fbe73 /src/txdb.cpp | |
| parent | qt: small English language updates from translators (diff) | |
| download | discoin-33dfbf57d34882aef7b83bc5ea9bf561e1f3e7b0.tar.xz discoin-33dfbf57d34882aef7b83bc5ea9bf561e1f3e7b0.zip | |
rpc: Fix leveldb iterator leak, and flush before `gettxoutsetinfo`
This fixes an iterator leak resulting in
bitcoind: db/version_set.cc:789: leveldb::VersionSet::~VersionSet(): Assertion `dummy_versions_.next_ == &dummy_versions_' failed."
exception on shutdown.
Also make sure to flush pcoinsTip before calling GetStats() to make
sure we apply them to the current height.
Diffstat (limited to 'src/txdb.cpp')
| -rw-r--r-- | src/txdb.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/txdb.cpp b/src/txdb.cpp index cb9f15001..8a73ce961 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); |