diff options
author | Daniel Kraft <d@domob.eu> | 2016-06-18 19:38:28 +0200 |
---|---|---|
committer | Daniel Kraft <d@domob.eu> | 2016-06-18 19:38:28 +0200 |
commit | 9fce0629b437441cb09c14055ee810b8ee6b7978 (patch) | |
tree | d7bfbb98986afba0d89a97d5c9824398d8a1feda /src/miner.cpp | |
parent | ed2cd59e258f756b2eaed7909a60956ade6ef7ee (diff) |
[c++11] Use std::unique_ptr for block creation.
CreateNewBlock returns a pointer for which the caller takes ownership.
Use std::unique_ptr to make this explicit and simplify handling of these
objects in getblocktemplate.
Diffstat (limited to 'src/miner.cpp')
-rw-r--r-- | src/miner.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/miner.cpp b/src/miner.cpp index 989ad11a26..d38ccedf55 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -29,6 +29,7 @@ #include <boost/thread.hpp> #include <boost/tuple/tuple.hpp> #include <queue> +#include <utility> using namespace std; @@ -102,14 +103,14 @@ void BlockAssembler::resetBlock() blockFinished = false; } -CBlockTemplate* BlockAssembler::CreateNewBlock(const CScript& scriptPubKeyIn) +std::unique_ptr<CBlockTemplate> BlockAssembler::CreateNewBlock(const CScript& scriptPubKeyIn) { resetBlock(); pblocktemplate.reset(new CBlockTemplate()); if(!pblocktemplate.get()) - return NULL; + return nullptr; pblock = &pblocktemplate->block; // pointer for convenience // Add dummy coinbase tx as first transaction @@ -164,7 +165,7 @@ CBlockTemplate* BlockAssembler::CreateNewBlock(const CScript& scriptPubKeyIn) throw std::runtime_error(strprintf("%s: TestBlockValidity failed: %s", __func__, FormatStateMessage(state))); } - return pblocktemplate.release(); + return std::move(pblocktemplate); } bool BlockAssembler::isStillDependent(CTxMemPool::txiter iter) |