aboutsummaryrefslogtreecommitdiff
path: root/src/miner.cpp
diff options
context:
space:
mode:
authorDaniel Kraft <d@domob.eu>2016-06-18 19:38:28 +0200
committerDaniel Kraft <d@domob.eu>2016-06-18 19:38:28 +0200
commit9fce0629b437441cb09c14055ee810b8ee6b7978 (patch)
treed7bfbb98986afba0d89a97d5c9824398d8a1feda /src/miner.cpp
parented2cd59e258f756b2eaed7909a60956ade6ef7ee (diff)
downloadbitcoin-9fce0629b437441cb09c14055ee810b8ee6b7978.tar.xz
[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.cpp7
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)