X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Frpcmining.cpp;h=8f3358fc8bdf5dea0c5834f4b52635c170e06c4f;hb=ef17ac0211ddd486127e1f94756fbb3fd704a9b4;hp=fa0244242940e693d2efb3716d3518f0d02260ba;hpb=e27b30dfa0c10d8c65b69cdf4240710b614d46fc;p=novacoin.git diff --git a/src/rpcmining.cpp b/src/rpcmining.cpp index fa02442..8f3358f 100644 --- a/src/rpcmining.cpp +++ b/src/rpcmining.cpp @@ -13,7 +13,6 @@ #include #include -#include using namespace json_spirit; using namespace std; @@ -161,7 +160,7 @@ Value scaninput(const Array& params, bool fHelp) } else { - vInputs = vector(boost::counting_iterator( 0 ), boost::counting_iterator( tx.vout.size() )); + for (size_t i = 0; i != tx.vout.size(); ++i) vInputs.push_back(i); } CTxDB txdb("r"); @@ -244,9 +243,9 @@ Value getworkex(const Array& params, bool fHelp) if (IsInitialBlockDownload()) throw JSONRPCError(-10, "NovaCoin is downloading blocks..."); - typedef map > mapNewBlock_t; + typedef map, CScript> > mapNewBlock_t; static mapNewBlock_t mapNewBlock; - static vector vNewBlock; + static vector> vNewBlock; static CReserveKey reservekey(pwalletMain); if (params.size() == 0) @@ -255,7 +254,7 @@ Value getworkex(const Array& params, bool fHelp) static unsigned int nTransactionsUpdatedLast; static CBlockIndex* pindexPrev; static int64_t nStart; - static CBlock* pblock; + static shared_ptr pblock; if (pindexPrev != pindexBest || (nTransactionsUpdated != nTransactionsUpdatedLast && GetTime() - nStart > 60)) { @@ -263,8 +262,6 @@ Value getworkex(const Array& params, bool fHelp) { // Deallocate old blocks since they're obsolete now mapNewBlock.clear(); - BOOST_FOREACH(CBlock* pblock, vNewBlock) - delete pblock; vNewBlock.clear(); } nTransactionsUpdatedLast = nTransactionsUpdated; @@ -340,7 +337,7 @@ Value getworkex(const Array& params, bool fHelp) // Get saved block if (!mapNewBlock.count(pdata->hashMerkleRoot)) return false; - CBlock* pblock = mapNewBlock[pdata->hashMerkleRoot].first; + std::shared_ptr pblock = mapNewBlock[pdata->hashMerkleRoot].first; pblock->nTime = pdata->nTime; pblock->nNonce = pdata->nNonce; @@ -375,9 +372,9 @@ Value getwork(const Array& params, bool fHelp) if (IsInitialBlockDownload()) throw JSONRPCError(RPC_CLIENT_IN_INITIAL_DOWNLOAD, "NovaCoin is downloading blocks..."); - typedef map > mapNewBlock_t; + typedef map, CScript> > mapNewBlock_t; static mapNewBlock_t mapNewBlock; // FIXME: thread safety - static vector vNewBlock; + static vector> vNewBlock; static CReserveKey reservekey(pwalletMain); if (params.size() == 0) @@ -386,7 +383,7 @@ Value getwork(const Array& params, bool fHelp) static unsigned int nTransactionsUpdatedLast; static CBlockIndex* pindexPrev; static int64_t nStart; - static CBlock* pblock; + static shared_ptr pblock; if (pindexPrev != pindexBest || (nTransactionsUpdated != nTransactionsUpdatedLast && GetTime() - nStart > 60)) { @@ -394,8 +391,6 @@ Value getwork(const Array& params, bool fHelp) { // Deallocate old blocks since they're obsolete now mapNewBlock.clear(); - BOOST_FOREACH(CBlock* pblock, vNewBlock) - delete pblock; vNewBlock.clear(); } @@ -458,7 +453,7 @@ Value getwork(const Array& params, bool fHelp) // Get saved block if (!mapNewBlock.count(pdata->hashMerkleRoot)) return false; - CBlock* pblock = mapNewBlock[pdata->hashMerkleRoot].first; + std::shared_ptr pblock = mapNewBlock[pdata->hashMerkleRoot].first; pblock->nTime = pdata->nTime; pblock->nNonce = pdata->nNonce; @@ -522,7 +517,7 @@ Value getblocktemplate(const Array& params, bool fHelp) static unsigned int nTransactionsUpdatedLast; static CBlockIndex* pindexPrev; static int64_t nStart; - static CBlock* pblock; + static std::shared_ptr pblock; if (pindexPrev != pindexBest || (nTransactionsUpdated != nTransactionsUpdatedLast && GetTime() - nStart > 5)) { @@ -537,8 +532,7 @@ Value getblocktemplate(const Array& params, bool fHelp) // Create new block if(pblock) { - delete pblock; - pblock = NULL; + pblock.reset(); } pblock = CreateNewBlock(pwalletMain); if (!pblock)