Merge #8126: std::shared_ptr based CTransaction storage in mempool
288d85dGet rid of CTxMempool::lookup() entirely (Pieter Wuille)c2a4724Optimization: use usec in expiration and reuse nNow (Pieter Wuille)e9b4780Optimization: don't check the mempool at all if no mempool req ever (Pieter Wuille)dbfb426Optimize the relay map to use shared_ptr's (Pieter Wuille)8d39d7aSwitch CTransaction storage in mempool to std::shared_ptr (Pieter Wuille)1b9e6d3Add support for unique_ptr and shared_ptr to memusage (Pieter Wuille)
This commit is contained in:
@@ -74,9 +74,9 @@ BOOST_AUTO_TEST_CASE(BlockPolicyEstimates)
|
||||
// 9/10 blocks add 2nd highest and so on until ...
|
||||
// 1/10 blocks add lowest fee/pri transactions
|
||||
while (txHashes[9-h].size()) {
|
||||
CTransaction btx;
|
||||
if (mpool.lookup(txHashes[9-h].back(), btx))
|
||||
block.push_back(btx);
|
||||
std::shared_ptr<const CTransaction> ptx = mpool.get(txHashes[9-h].back());
|
||||
if (ptx)
|
||||
block.push_back(*ptx);
|
||||
txHashes[9-h].pop_back();
|
||||
}
|
||||
}
|
||||
@@ -160,9 +160,9 @@ BOOST_AUTO_TEST_CASE(BlockPolicyEstimates)
|
||||
// Estimates should still not be below original
|
||||
for (int j = 0; j < 10; j++) {
|
||||
while(txHashes[j].size()) {
|
||||
CTransaction btx;
|
||||
if (mpool.lookup(txHashes[j].back(), btx))
|
||||
block.push_back(btx);
|
||||
std::shared_ptr<const CTransaction> ptx = mpool.get(txHashes[j].back());
|
||||
if (ptx)
|
||||
block.push_back(*ptx);
|
||||
txHashes[j].pop_back();
|
||||
}
|
||||
}
|
||||
@@ -181,9 +181,9 @@ BOOST_AUTO_TEST_CASE(BlockPolicyEstimates)
|
||||
tx.vin[0].prevout.n = 10000*blocknum+100*j+k;
|
||||
uint256 hash = tx.GetHash();
|
||||
mpool.addUnchecked(hash, entry.Fee(feeV[k/4][j]).Time(GetTime()).Priority(priV[k/4][j]).Height(blocknum).FromTx(tx, &mpool));
|
||||
CTransaction btx;
|
||||
if (mpool.lookup(hash, btx))
|
||||
block.push_back(btx);
|
||||
std::shared_ptr<const CTransaction> ptx = mpool.get(hash);
|
||||
if (ptx)
|
||||
block.push_back(*ptx);
|
||||
}
|
||||
}
|
||||
mpool.removeForBlock(block, ++blocknum, dummyConflicted);
|
||||
|
||||
Reference in New Issue
Block a user