mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-06-20 05:42:50 +02:00
Merge bitcoin/bitcoin#23211: refactor: move update_*
structs from txmempool.h to .cpp file
65aaf9495d19ea3fb875228a7e14aab6c1f2986d refactor: move `update_*` structs from txmempool.h to .cpp file (Sebastian Falbesoner) 9947ce62626c05bd186ae8a4864aa382f673ec1a refactor: use const reference for parents in `CTxMemPool::UpdateAncestorsOf` (Sebastian Falbesoner) Pull request description: These helpers are exclusively used in txmempool.cpp, hence they should also be moved there. The PR also contains a commit which fixes const-correctness for parents in `CTxMemPool::UpdateAncestorsOf` and declares them as reference to avoid a copy. ACKs for top commit: promag: Code review ACK 65aaf9495d19ea3fb875228a7e14aab6c1f2986d. Verified move-only commit locally. Tree-SHA512: 7ce29f3ba0e68b5355001f27725b00f6d54cc993015356eb40b61b8cdd17db49b980f4c3d798c8e0c940d245dc3a72c474bb9ff3c0ee971ead450786076812c2
This commit is contained in:
commit
e2b5192d1c
@ -22,6 +22,58 @@
|
|||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include <optional>
|
#include <optional>
|
||||||
|
|
||||||
|
// Helpers for modifying CTxMemPool::mapTx, which is a boost multi_index.
|
||||||
|
struct update_descendant_state
|
||||||
|
{
|
||||||
|
update_descendant_state(int64_t _modifySize, CAmount _modifyFee, int64_t _modifyCount) :
|
||||||
|
modifySize(_modifySize), modifyFee(_modifyFee), modifyCount(_modifyCount)
|
||||||
|
{}
|
||||||
|
|
||||||
|
void operator() (CTxMemPoolEntry &e)
|
||||||
|
{ e.UpdateDescendantState(modifySize, modifyFee, modifyCount); }
|
||||||
|
|
||||||
|
private:
|
||||||
|
int64_t modifySize;
|
||||||
|
CAmount modifyFee;
|
||||||
|
int64_t modifyCount;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct update_ancestor_state
|
||||||
|
{
|
||||||
|
update_ancestor_state(int64_t _modifySize, CAmount _modifyFee, int64_t _modifyCount, int64_t _modifySigOpsCost) :
|
||||||
|
modifySize(_modifySize), modifyFee(_modifyFee), modifyCount(_modifyCount), modifySigOpsCost(_modifySigOpsCost)
|
||||||
|
{}
|
||||||
|
|
||||||
|
void operator() (CTxMemPoolEntry &e)
|
||||||
|
{ e.UpdateAncestorState(modifySize, modifyFee, modifyCount, modifySigOpsCost); }
|
||||||
|
|
||||||
|
private:
|
||||||
|
int64_t modifySize;
|
||||||
|
CAmount modifyFee;
|
||||||
|
int64_t modifyCount;
|
||||||
|
int64_t modifySigOpsCost;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct update_fee_delta
|
||||||
|
{
|
||||||
|
explicit update_fee_delta(int64_t _feeDelta) : feeDelta(_feeDelta) { }
|
||||||
|
|
||||||
|
void operator() (CTxMemPoolEntry &e) { e.UpdateFeeDelta(feeDelta); }
|
||||||
|
|
||||||
|
private:
|
||||||
|
int64_t feeDelta;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct update_lock_points
|
||||||
|
{
|
||||||
|
explicit update_lock_points(const LockPoints& _lp) : lp(_lp) { }
|
||||||
|
|
||||||
|
void operator() (CTxMemPoolEntry &e) { e.UpdateLockPoints(lp); }
|
||||||
|
|
||||||
|
private:
|
||||||
|
const LockPoints& lp;
|
||||||
|
};
|
||||||
|
|
||||||
CTxMemPoolEntry::CTxMemPoolEntry(const CTransactionRef& tx, CAmount fee,
|
CTxMemPoolEntry::CTxMemPoolEntry(const CTransactionRef& tx, CAmount fee,
|
||||||
int64_t time, unsigned int entry_height,
|
int64_t time, unsigned int entry_height,
|
||||||
bool spends_coinbase, int64_t sigops_cost, LockPoints lp)
|
bool spends_coinbase, int64_t sigops_cost, LockPoints lp)
|
||||||
@ -277,7 +329,7 @@ bool CTxMemPool::CalculateMemPoolAncestors(const CTxMemPoolEntry &entry,
|
|||||||
|
|
||||||
void CTxMemPool::UpdateAncestorsOf(bool add, txiter it, setEntries &setAncestors)
|
void CTxMemPool::UpdateAncestorsOf(bool add, txiter it, setEntries &setAncestors)
|
||||||
{
|
{
|
||||||
CTxMemPoolEntry::Parents parents = it->GetMemPoolParents();
|
const CTxMemPoolEntry::Parents& parents = it->GetMemPoolParentsConst();
|
||||||
// add or remove this tx as a child of each parent
|
// add or remove this tx as a child of each parent
|
||||||
for (const CTxMemPoolEntry& parent : parents) {
|
for (const CTxMemPoolEntry& parent : parents) {
|
||||||
UpdateChild(mapTx.iterator_to(parent), it, add);
|
UpdateChild(mapTx.iterator_to(parent), it, add);
|
||||||
|
@ -159,58 +159,6 @@ public:
|
|||||||
mutable Epoch::Marker m_epoch_marker; //!< epoch when last touched, useful for graph algorithms
|
mutable Epoch::Marker m_epoch_marker; //!< epoch when last touched, useful for graph algorithms
|
||||||
};
|
};
|
||||||
|
|
||||||
// Helpers for modifying CTxMemPool::mapTx, which is a boost multi_index.
|
|
||||||
struct update_descendant_state
|
|
||||||
{
|
|
||||||
update_descendant_state(int64_t _modifySize, CAmount _modifyFee, int64_t _modifyCount) :
|
|
||||||
modifySize(_modifySize), modifyFee(_modifyFee), modifyCount(_modifyCount)
|
|
||||||
{}
|
|
||||||
|
|
||||||
void operator() (CTxMemPoolEntry &e)
|
|
||||||
{ e.UpdateDescendantState(modifySize, modifyFee, modifyCount); }
|
|
||||||
|
|
||||||
private:
|
|
||||||
int64_t modifySize;
|
|
||||||
CAmount modifyFee;
|
|
||||||
int64_t modifyCount;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct update_ancestor_state
|
|
||||||
{
|
|
||||||
update_ancestor_state(int64_t _modifySize, CAmount _modifyFee, int64_t _modifyCount, int64_t _modifySigOpsCost) :
|
|
||||||
modifySize(_modifySize), modifyFee(_modifyFee), modifyCount(_modifyCount), modifySigOpsCost(_modifySigOpsCost)
|
|
||||||
{}
|
|
||||||
|
|
||||||
void operator() (CTxMemPoolEntry &e)
|
|
||||||
{ e.UpdateAncestorState(modifySize, modifyFee, modifyCount, modifySigOpsCost); }
|
|
||||||
|
|
||||||
private:
|
|
||||||
int64_t modifySize;
|
|
||||||
CAmount modifyFee;
|
|
||||||
int64_t modifyCount;
|
|
||||||
int64_t modifySigOpsCost;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct update_fee_delta
|
|
||||||
{
|
|
||||||
explicit update_fee_delta(int64_t _feeDelta) : feeDelta(_feeDelta) { }
|
|
||||||
|
|
||||||
void operator() (CTxMemPoolEntry &e) { e.UpdateFeeDelta(feeDelta); }
|
|
||||||
|
|
||||||
private:
|
|
||||||
int64_t feeDelta;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct update_lock_points
|
|
||||||
{
|
|
||||||
explicit update_lock_points(const LockPoints& _lp) : lp(_lp) { }
|
|
||||||
|
|
||||||
void operator() (CTxMemPoolEntry &e) { e.UpdateLockPoints(lp); }
|
|
||||||
|
|
||||||
private:
|
|
||||||
const LockPoints& lp;
|
|
||||||
};
|
|
||||||
|
|
||||||
// extracts a transaction hash from CTxMemPoolEntry or CTransactionRef
|
// extracts a transaction hash from CTxMemPoolEntry or CTransactionRef
|
||||||
struct mempoolentry_txid
|
struct mempoolentry_txid
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user