0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-02-15 11:36:00 -05:00

refactor: SetAddressBookWithDB, minimize number of map lookups

This commit is contained in:
furszy 2023-02-25 16:39:11 -03:00
parent bba4f8dcb5
commit d0943315b1
No known key found for this signature in database
GPG key ID: 5DD23CCC686AA623

View file

@ -2359,14 +2359,15 @@ bool CWallet::SetAddressBookWithDB(WalletBatch& batch, const CTxDestination& add
{ {
LOCK(cs_wallet); LOCK(cs_wallet);
std::map<CTxDestination, CAddressBookData>::iterator mi = m_address_book.find(address); std::map<CTxDestination, CAddressBookData>::iterator mi = m_address_book.find(address);
fUpdated = (mi != m_address_book.end() && !mi->second.IsChange()); fUpdated = mi != m_address_book.end() && !mi->second.IsChange();
m_address_book[address].SetLabel(strName);
CAddressBookData& record = mi != m_address_book.end() ? mi->second : m_address_book[address];
record.SetLabel(strName);
is_mine = IsMine(address) != ISMINE_NO; is_mine = IsMine(address) != ISMINE_NO;
if (new_purpose) { /* update purpose only if requested */ if (new_purpose) { /* update purpose only if requested */
purpose = m_address_book[address].purpose = new_purpose; record.purpose = new_purpose;
} else {
purpose = m_address_book[address].purpose;
} }
purpose = record.purpose;
} }
const std::string& encoded_dest = EncodeDestination(address); const std::string& encoded_dest = EncodeDestination(address);