Merge bitcoin/bitcoin#22358: Remove unused wallet pointer from wallet signals

8888cf45f5 Remove unused wallet pointer from NotifyAddressBookChanged (MarcoFalke)
faf3640303 Remove unused wallet pointer from NotifyTransactionChanged signal (MarcoFalke)

Pull request description:

  The signals are members of the wallet, so passing the pointer would be redundant even if it was used.

  Also, fix `with` -> `without`, which was forgotten in commit ca4cf5cff6.

ACKs for top commit:
  jonatack:
    Code review ACK 8888cf45f5 also verified with/without lock cs_wallet status for each of the two functions and debian clang 11 debug build clean
  promag:
    Code review ACK 8888cf45f5.
  theStack:
    Code review ACK 8888cf45f5

Tree-SHA512: e3b80931ce9bcb05213619f5435ac7c21d3c7848643950a70db610902bd1803c92bb75e501d46b0e519bc576901f160e088e8882c4f1adce892a80df565f897b
This commit is contained in:
fanquake 2021-06-29 11:41:02 +08:00
commit e0face9235
No known key found for this signature in database
GPG key ID: 2EEB9F5CC09526C1
4 changed files with 18 additions and 19 deletions

View file

@ -69,7 +69,7 @@ uint256 SendCoins(CWallet& wallet, SendCoinsDialog& sendCoinsDialog, const CTxDe
->findChild<QCheckBox*>("optInRBF") ->findChild<QCheckBox*>("optInRBF")
->setCheckState(rbf ? Qt::Checked : Qt::Unchecked); ->setCheckState(rbf ? Qt::Checked : Qt::Unchecked);
uint256 txid; uint256 txid;
boost::signals2::scoped_connection c(wallet.NotifyTransactionChanged.connect([&txid](CWallet*, const uint256& hash, ChangeType status) { boost::signals2::scoped_connection c(wallet.NotifyTransactionChanged.connect([&txid](const uint256& hash, ChangeType status) {
if (status == CT_NEW) txid = hash; if (status == CT_NEW) txid = hash;
})); }));
ConfirmSend(); ConfirmSend();

View file

@ -475,13 +475,13 @@ public:
std::unique_ptr<Handler> handleAddressBookChanged(AddressBookChangedFn fn) override std::unique_ptr<Handler> handleAddressBookChanged(AddressBookChangedFn fn) override
{ {
return MakeHandler(m_wallet->NotifyAddressBookChanged.connect( return MakeHandler(m_wallet->NotifyAddressBookChanged.connect(
[fn](CWallet*, const CTxDestination& address, const std::string& label, bool is_mine, [fn](const CTxDestination& address, const std::string& label, bool is_mine,
const std::string& purpose, ChangeType status) { fn(address, label, is_mine, purpose, status); })); const std::string& purpose, ChangeType status) { fn(address, label, is_mine, purpose, status); }));
} }
std::unique_ptr<Handler> handleTransactionChanged(TransactionChangedFn fn) override std::unique_ptr<Handler> handleTransactionChanged(TransactionChangedFn fn) override
{ {
return MakeHandler(m_wallet->NotifyTransactionChanged.connect( return MakeHandler(m_wallet->NotifyTransactionChanged.connect(
[fn](CWallet*, const uint256& txid, ChangeType status) { fn(txid, status); })); [fn](const uint256& txid, ChangeType status) { fn(txid, status); }));
} }
std::unique_ptr<Handler> handleWatchOnlyChanged(WatchOnlyChangedFn fn) override std::unique_ptr<Handler> handleWatchOnlyChanged(WatchOnlyChangedFn fn) override
{ {

View file

@ -801,7 +801,7 @@ bool CWallet::MarkReplaced(const uint256& originalHash, const uint256& newHash)
success = false; success = false;
} }
NotifyTransactionChanged(this, originalHash, CT_UPDATED); NotifyTransactionChanged(originalHash, CT_UPDATED);
return success; return success;
} }
@ -930,7 +930,7 @@ CWalletTx* CWallet::AddToWallet(CTransactionRef tx, const CWalletTx::Confirmatio
wtx.MarkDirty(); wtx.MarkDirty();
// Notify UI of new or updated transaction // Notify UI of new or updated transaction
NotifyTransactionChanged(this, hash, fInsertedNew ? CT_NEW : CT_UPDATED); NotifyTransactionChanged(hash, fInsertedNew ? CT_NEW : CT_UPDATED);
#if HAVE_SYSTEM #if HAVE_SYSTEM
// notify an external script when a wallet transaction comes in or is updated // notify an external script when a wallet transaction comes in or is updated
@ -1104,7 +1104,7 @@ bool CWallet::AbandonTransaction(const uint256& hashTx)
wtx.setAbandoned(); wtx.setAbandoned();
wtx.MarkDirty(); wtx.MarkDirty();
batch.WriteTx(wtx); batch.WriteTx(wtx);
NotifyTransactionChanged(this, wtx.GetHash(), CT_UPDATED); NotifyTransactionChanged(wtx.GetHash(), CT_UPDATED);
// Iterate over all its outputs, and mark transactions in the wallet that spend them abandoned too // Iterate over all its outputs, and mark transactions in the wallet that spend them abandoned too
TxSpends::const_iterator iter = mapTxSpends.lower_bound(COutPoint(now, 0)); TxSpends::const_iterator iter = mapTxSpends.lower_bound(COutPoint(now, 0));
while (iter != mapTxSpends.end() && iter->first.hash == now) { while (iter != mapTxSpends.end() && iter->first.hash == now) {
@ -1944,7 +1944,7 @@ void CWallet::CommitTransaction(CTransactionRef tx, mapValue_t mapValue, std::ve
for (const CTxIn& txin : tx->vin) { for (const CTxIn& txin : tx->vin) {
CWalletTx &coin = mapWallet.at(txin.prevout.hash); CWalletTx &coin = mapWallet.at(txin.prevout.hash);
coin.MarkDirty(); coin.MarkDirty();
NotifyTransactionChanged(this, coin.GetHash(), CT_UPDATED); NotifyTransactionChanged(coin.GetHash(), CT_UPDATED);
} }
// Get the inserted-CWalletTx from mapWallet so that the // Get the inserted-CWalletTx from mapWallet so that the
@ -1999,7 +1999,7 @@ DBErrors CWallet::ZapSelectTx(std::vector<uint256>& vHashIn, std::vector<uint256
for (const auto& txin : it->second.tx->vin) for (const auto& txin : it->second.tx->vin)
mapTxSpends.erase(txin.prevout); mapTxSpends.erase(txin.prevout);
mapWallet.erase(it); mapWallet.erase(it);
NotifyTransactionChanged(this, hash, CT_DELETED); NotifyTransactionChanged(hash, CT_DELETED);
} }
if (nZapSelectTxRet == DBErrors::NEED_REWRITE) if (nZapSelectTxRet == DBErrors::NEED_REWRITE)
@ -2033,8 +2033,8 @@ bool CWallet::SetAddressBookWithDB(WalletBatch& batch, const CTxDestination& add
m_address_book[address].purpose = strPurpose; m_address_book[address].purpose = strPurpose;
is_mine = IsMine(address) != ISMINE_NO; is_mine = IsMine(address) != ISMINE_NO;
} }
NotifyAddressBookChanged(this, address, strName, is_mine, NotifyAddressBookChanged(address, strName, is_mine,
strPurpose, (fUpdated ? CT_UPDATED : CT_NEW) ); strPurpose, (fUpdated ? CT_UPDATED : CT_NEW));
if (!strPurpose.empty() && !batch.WritePurpose(EncodeDestination(address), strPurpose)) if (!strPurpose.empty() && !batch.WritePurpose(EncodeDestination(address), strPurpose))
return false; return false;
return batch.WriteName(EncodeDestination(address), strName); return batch.WriteName(EncodeDestination(address), strName);
@ -2069,7 +2069,7 @@ bool CWallet::DelAddressBook(const CTxDestination& address)
is_mine = IsMine(address) != ISMINE_NO; is_mine = IsMine(address) != ISMINE_NO;
} }
NotifyAddressBookChanged(this, address, "", is_mine, "", CT_DELETED); NotifyAddressBookChanged(address, "", is_mine, "", CT_DELETED);
batch.ErasePurpose(EncodeDestination(address)); batch.ErasePurpose(EncodeDestination(address));
return batch.EraseName(EncodeDestination(address)); return batch.EraseName(EncodeDestination(address));

View file

@ -724,19 +724,18 @@ public:
/** /**
* Address book entry changed. * Address book entry changed.
* @note called with lock cs_wallet held. * @note called without lock cs_wallet held.
*/ */
boost::signals2::signal<void (CWallet *wallet, const CTxDestination boost::signals2::signal<void(const CTxDestination& address,
&address, const std::string &label, bool isMine, const std::string& label, bool isMine,
const std::string &purpose, const std::string& purpose, ChangeType status)>
ChangeType status)> NotifyAddressBookChanged; NotifyAddressBookChanged;
/** /**
* Wallet transaction added, removed or updated. * Wallet transaction added, removed or updated.
* @note called with lock cs_wallet held. * @note called with lock cs_wallet held.
*/ */
boost::signals2::signal<void (CWallet *wallet, const uint256 &hashTx, boost::signals2::signal<void(const uint256& hashTx, ChangeType status)> NotifyTransactionChanged;
ChangeType status)> NotifyTransactionChanged;
/** Show progress e.g. for rescan */ /** Show progress e.g. for rescan */
boost::signals2::signal<void (const std::string &title, int nProgress)> ShowProgress; boost::signals2::signal<void (const std::string &title, int nProgress)> ShowProgress;