mirror of
https://github.com/dashpay/dash.git
synced 2024-12-26 04:22:55 +01:00
Merge #19738: wallet: Avoid multiple BerkeleyBatch in DelAddressBook
abac4367607d8d2b628e4db6a9663c960bacdacc wallet: Avoid multiple BerkeleyBatch in DelAddressBook (João Barbosa) Pull request description: ACKs for top commit: achow101: ACK abac4367607d8d2b628e4db6a9663c960bacdacc jonatack: ACK abac4367607d8d2b628e4db6a9663c960bacdacc meshcollider: re-utACK abac4367607d8d2b628e4db6a9663c960bacdacc Tree-SHA512: 92309fb74c48694160807326c0fe9793044a75cd77ed19400cceab54a7eefeb54ffc9334535e6021b3af7b9a364dbbeda3a9173540fff8144dfd437e96d76b5c
This commit is contained in:
parent
7fbcba4503
commit
5492191904
@ -2713,6 +2713,7 @@ std::map<CTxDestination, std::vector<COutput>> CWallet::ListCoins() const
|
|||||||
|
|
||||||
const CTxOut& CWallet::FindNonChangeParentOutput(const CTransaction& tx, int output) const
|
const CTxOut& CWallet::FindNonChangeParentOutput(const CTransaction& tx, int output) const
|
||||||
{
|
{
|
||||||
|
AssertLockHeld(cs_wallet);
|
||||||
const CTransaction* ptx = &tx;
|
const CTransaction* ptx = &tx;
|
||||||
int n = output;
|
int n = output;
|
||||||
while (IsChange(ptx->vout[n]) && ptx->vin.size() > 0) {
|
while (IsChange(ptx->vout[n]) && ptx->vin.size() > 0) {
|
||||||
@ -3984,6 +3985,7 @@ bool CWallet::DelAddressBook(const CTxDestination& address)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WalletBatch batch(GetDatabase());
|
||||||
{
|
{
|
||||||
LOCK(cs_wallet);
|
LOCK(cs_wallet);
|
||||||
|
|
||||||
@ -3991,15 +3993,15 @@ bool CWallet::DelAddressBook(const CTxDestination& address)
|
|||||||
std::string strAddress = EncodeDestination(address);
|
std::string strAddress = EncodeDestination(address);
|
||||||
for (const std::pair<const std::string, std::string> &item : m_address_book[address].destdata)
|
for (const std::pair<const std::string, std::string> &item : m_address_book[address].destdata)
|
||||||
{
|
{
|
||||||
WalletBatch(GetDatabase()).EraseDestData(strAddress, item.first);
|
batch.EraseDestData(strAddress, item.first);
|
||||||
}
|
}
|
||||||
m_address_book.erase(address);
|
m_address_book.erase(address);
|
||||||
}
|
}
|
||||||
|
|
||||||
NotifyAddressBookChanged(this, address, "", IsMine(address) != ISMINE_NO, "", CT_DELETED);
|
NotifyAddressBookChanged(this, address, "", IsMine(address) != ISMINE_NO, "", CT_DELETED);
|
||||||
|
|
||||||
WalletBatch(GetDatabase()).ErasePurpose(EncodeDestination(address));
|
batch.ErasePurpose(EncodeDestination(address));
|
||||||
return WalletBatch(GetDatabase()).EraseName(EncodeDestination(address));
|
return batch.EraseName(EncodeDestination(address));
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t CWallet::KeypoolCountExternalKeys() const
|
size_t CWallet::KeypoolCountExternalKeys() const
|
||||||
|
Loading…
Reference in New Issue
Block a user