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