@@ -192,7 +192,7 @@ void CWallet::SetBestChain(const CBlockLocator& loc)
192
192
193
193
bool CWallet::SetMinVersion (enum WalletFeature nVersion, CWalletDB* pwalletdbIn, bool fExplicit )
194
194
{
195
- AssertLockHeld (cs_wallet); // nWalletVersion
195
+ LOCK (cs_wallet); // nWalletVersion
196
196
if (nWalletVersion >= nVersion)
197
197
return true ;
198
198
@@ -219,7 +219,7 @@ bool CWallet::SetMinVersion(enum WalletFeature nVersion, CWalletDB* pwalletdbIn,
219
219
220
220
bool CWallet::SetMaxVersion (int nVersion)
221
221
{
222
- AssertLockHeld (cs_wallet); // nWalletVersion, nWalletMaxVersion
222
+ LOCK (cs_wallet); // nWalletVersion, nWalletMaxVersion
223
223
// cannot downgrade below current version
224
224
if (nWalletVersion > nVersion)
225
225
return false ;
@@ -1621,14 +1621,17 @@ DBErrors CWallet::ZapWalletTx()
1621
1621
1622
1622
bool CWallet::SetAddressBook (const CTxDestination& address, const string& strName, const string& strPurpose)
1623
1623
{
1624
- AssertLockHeld (cs_wallet); // mapAddressBook
1625
- std::map<CTxDestination, CAddressBookData>::iterator mi = mapAddressBook.find (address);
1626
- mapAddressBook[address].name = strName;
1627
- if (!strPurpose.empty ()) /* update purpose only if requested */
1628
- mapAddressBook[address].purpose = strPurpose;
1624
+ bool fUpdated = false ;
1625
+ {
1626
+ LOCK (cs_wallet); // mapAddressBook
1627
+ std::map<CTxDestination, CAddressBookData>::iterator mi = mapAddressBook.find (address);
1628
+ fUpdated = mi != mapAddressBook.end ();
1629
+ mapAddressBook[address].name = strName;
1630
+ if (!strPurpose.empty ()) /* update purpose only if requested */
1631
+ mapAddressBook[address].purpose = strPurpose;
1632
+ }
1629
1633
NotifyAddressBookChanged (this , address, strName, ::IsMine (*this , address),
1630
- mapAddressBook[address].purpose ,
1631
- (mi == mapAddressBook.end ()) ? CT_NEW : CT_UPDATED);
1634
+ strPurpose, (fUpdated ? CT_UPDATED : CT_NEW) );
1632
1635
if (!fFileBacked )
1633
1636
return false ;
1634
1637
if (!strPurpose.empty () && !CWalletDB (strWalletFile).WritePurpose (CBitcoinAddress (address).ToString (), strPurpose))
@@ -1638,21 +1641,23 @@ bool CWallet::SetAddressBook(const CTxDestination& address, const string& strNam
1638
1641
1639
1642
bool CWallet::DelAddressBook (const CTxDestination& address)
1640
1643
{
1641
-
1642
- AssertLockHeld (cs_wallet); // mapAddressBook
1643
-
1644
- if (fFileBacked )
1645
1644
{
1646
- // Delete destdata tuples associated with address
1647
- std::string strAddress = CBitcoinAddress (address). ToString ();
1648
- BOOST_FOREACH ( const PAIRTYPE (string, string) &item, mapAddressBook[address]. destdata )
1645
+ LOCK (cs_wallet); // mapAddressBook
1646
+
1647
+ if ( fFileBacked )
1649
1648
{
1650
- CWalletDB (strWalletFile).EraseDestData (strAddress, item.first );
1649
+ // Delete destdata tuples associated with address
1650
+ std::string strAddress = CBitcoinAddress (address).ToString ();
1651
+ BOOST_FOREACH (const PAIRTYPE (string, string) &item, mapAddressBook[address].destdata )
1652
+ {
1653
+ CWalletDB (strWalletFile).EraseDestData (strAddress, item.first );
1654
+ }
1651
1655
}
1656
+ mapAddressBook.erase (address);
1652
1657
}
1653
1658
1654
- mapAddressBook.erase (address);
1655
1659
NotifyAddressBookChanged (this , address, " " , ::IsMine (*this , address), " " , CT_DELETED);
1660
+
1656
1661
if (!fFileBacked )
1657
1662
return false ;
1658
1663
CWalletDB (strWalletFile).ErasePurpose (CBitcoinAddress (address).ToString ());
0 commit comments