Skip to content

Commit d094331

Browse files
committed
refactor: SetAddressBookWithDB, minimize number of map lookups
1 parent bba4f8d commit d094331

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

src/wallet/wallet.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2359,14 +2359,15 @@ bool CWallet::SetAddressBookWithDB(WalletBatch& batch, const CTxDestination& add
23592359
{
23602360
LOCK(cs_wallet);
23612361
std::map<CTxDestination, CAddressBookData>::iterator mi = m_address_book.find(address);
2362-
fUpdated = (mi != m_address_book.end() && !mi->second.IsChange());
2363-
m_address_book[address].SetLabel(strName);
2362+
fUpdated = mi != m_address_book.end() && !mi->second.IsChange();
2363+
2364+
CAddressBookData& record = mi != m_address_book.end() ? mi->second : m_address_book[address];
2365+
record.SetLabel(strName);
23642366
is_mine = IsMine(address) != ISMINE_NO;
23652367
if (new_purpose) { /* update purpose only if requested */
2366-
purpose = m_address_book[address].purpose = new_purpose;
2367-
} else {
2368-
purpose = m_address_book[address].purpose;
2368+
record.purpose = new_purpose;
23692369
}
2370+
purpose = record.purpose;
23702371
}
23712372

23722373
const std::string& encoded_dest = EncodeDestination(address);

0 commit comments

Comments
 (0)