wallet: Add lock annotation for mapAddressBook
This commit is contained in:
parent
72d34c0edc
commit
faa46475d7
7 changed files with 13 additions and 13 deletions
|
@ -212,6 +212,7 @@ public:
|
||||||
}
|
}
|
||||||
std::vector<std::string> getDestValues(const std::string& prefix) override
|
std::vector<std::string> getDestValues(const std::string& prefix) override
|
||||||
{
|
{
|
||||||
|
LOCK(m_wallet.cs_wallet);
|
||||||
return m_wallet.GetDestValues(prefix);
|
return m_wallet.GetDestValues(prefix);
|
||||||
}
|
}
|
||||||
void lockCoin(const COutPoint& output) override
|
void lockCoin(const COutPoint& output) override
|
||||||
|
|
|
@ -95,6 +95,7 @@ void TestAddAddressesToSendBook()
|
||||||
}
|
}
|
||||||
|
|
||||||
auto check_addbook_size = [&wallet](int expected_size) {
|
auto check_addbook_size = [&wallet](int expected_size) {
|
||||||
|
LOCK(wallet->cs_wallet);
|
||||||
QCOMPARE(static_cast<int>(wallet->mapAddressBook.size()), expected_size);
|
QCOMPARE(static_cast<int>(wallet->mapAddressBook.size()), expected_size);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,7 @@ static std::string DecodeDumpString(const std::string &str) {
|
||||||
return ret.str();
|
return ret.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool GetWalletAddressesForKey(CWallet * const pwallet, const CKeyID &keyid, std::string &strAddr, std::string &strLabel)
|
static bool GetWalletAddressesForKey(CWallet* const pwallet, const CKeyID& keyid, std::string& strAddr, std::string& strLabel) EXCLUSIVE_LOCKS_REQUIRED(pwallet->cs_wallet)
|
||||||
{
|
{
|
||||||
bool fLabelFound = false;
|
bool fLabelFound = false;
|
||||||
CKey key;
|
CKey key;
|
||||||
|
|
|
@ -1309,7 +1309,7 @@ static void MaybePushAddress(UniValue & entry, const CTxDestination &dest)
|
||||||
* @param filter_ismine The "is mine" filter flags.
|
* @param filter_ismine The "is mine" filter flags.
|
||||||
* @param filter_label Optional label string to filter incoming transactions.
|
* @param filter_label Optional label string to filter incoming transactions.
|
||||||
*/
|
*/
|
||||||
static void ListTransactions(interfaces::Chain::Lock& locked_chain, CWallet* const pwallet, const CWalletTx& wtx, int nMinDepth, bool fLong, UniValue& ret, const isminefilter& filter_ismine, const std::string* filter_label)
|
static void ListTransactions(interfaces::Chain::Lock& locked_chain, CWallet* const pwallet, const CWalletTx& wtx, int nMinDepth, bool fLong, UniValue& ret, const isminefilter& filter_ismine, const std::string* filter_label) EXCLUSIVE_LOCKS_REQUIRED(pwallet->cs_wallet)
|
||||||
{
|
{
|
||||||
CAmount nFee;
|
CAmount nFee;
|
||||||
std::list<COutputEntry> listReceived;
|
std::list<COutputEntry> listReceived;
|
||||||
|
|
|
@ -3172,7 +3172,7 @@ bool CWallet::SetAddressBook(const CTxDestination& address, const std::string& s
|
||||||
{
|
{
|
||||||
bool fUpdated = false;
|
bool fUpdated = false;
|
||||||
{
|
{
|
||||||
LOCK(cs_wallet); // mapAddressBook
|
LOCK(cs_wallet);
|
||||||
std::map<CTxDestination, CAddressBookData>::iterator mi = mapAddressBook.find(address);
|
std::map<CTxDestination, CAddressBookData>::iterator mi = mapAddressBook.find(address);
|
||||||
fUpdated = mi != mapAddressBook.end();
|
fUpdated = mi != mapAddressBook.end();
|
||||||
mapAddressBook[address].name = strName;
|
mapAddressBook[address].name = strName;
|
||||||
|
@ -3189,7 +3189,7 @@ bool CWallet::SetAddressBook(const CTxDestination& address, const std::string& s
|
||||||
bool CWallet::DelAddressBook(const CTxDestination& address)
|
bool CWallet::DelAddressBook(const CTxDestination& address)
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
LOCK(cs_wallet); // mapAddressBook
|
LOCK(cs_wallet);
|
||||||
|
|
||||||
// Delete destdata tuples associated with address
|
// Delete destdata tuples associated with address
|
||||||
std::string strAddress = EncodeDestination(address);
|
std::string strAddress = EncodeDestination(address);
|
||||||
|
@ -3869,7 +3869,6 @@ bool CWallet::GetDestData(const CTxDestination &dest, const std::string &key, st
|
||||||
|
|
||||||
std::vector<std::string> CWallet::GetDestValues(const std::string& prefix) const
|
std::vector<std::string> CWallet::GetDestValues(const std::string& prefix) const
|
||||||
{
|
{
|
||||||
LOCK(cs_wallet);
|
|
||||||
std::vector<std::string> values;
|
std::vector<std::string> values;
|
||||||
for (const auto& address : mapAddressBook) {
|
for (const auto& address : mapAddressBook) {
|
||||||
for (const auto& data : address.second.destdata) {
|
for (const auto& data : address.second.destdata) {
|
||||||
|
|
|
@ -788,7 +788,7 @@ public:
|
||||||
int64_t nOrderPosNext GUARDED_BY(cs_wallet) = 0;
|
int64_t nOrderPosNext GUARDED_BY(cs_wallet) = 0;
|
||||||
uint64_t nAccountingEntryNumber = 0;
|
uint64_t nAccountingEntryNumber = 0;
|
||||||
|
|
||||||
std::map<CTxDestination, CAddressBookData> mapAddressBook;
|
std::map<CTxDestination, CAddressBookData> mapAddressBook GUARDED_BY(cs_wallet);
|
||||||
|
|
||||||
std::set<COutPoint> setLockedCoins GUARDED_BY(cs_wallet);
|
std::set<COutPoint> setLockedCoins GUARDED_BY(cs_wallet);
|
||||||
|
|
||||||
|
@ -865,15 +865,15 @@ public:
|
||||||
bool LoadCScript(const CScript& redeemScript);
|
bool LoadCScript(const CScript& redeemScript);
|
||||||
|
|
||||||
//! Adds a destination data tuple to the store, and saves it to disk
|
//! Adds a destination data tuple to the store, and saves it to disk
|
||||||
bool AddDestData(const CTxDestination &dest, const std::string &key, const std::string &value);
|
bool AddDestData(const CTxDestination& dest, const std::string& key, const std::string& value) EXCLUSIVE_LOCKS_REQUIRED(cs_wallet);
|
||||||
//! Erases a destination data tuple in the store and on disk
|
//! Erases a destination data tuple in the store and on disk
|
||||||
bool EraseDestData(const CTxDestination &dest, const std::string &key);
|
bool EraseDestData(const CTxDestination& dest, const std::string& key) EXCLUSIVE_LOCKS_REQUIRED(cs_wallet);
|
||||||
//! Adds a destination data tuple to the store, without saving it to disk
|
//! Adds a destination data tuple to the store, without saving it to disk
|
||||||
void LoadDestData(const CTxDestination &dest, const std::string &key, const std::string &value);
|
void LoadDestData(const CTxDestination& dest, const std::string& key, const std::string& value) EXCLUSIVE_LOCKS_REQUIRED(cs_wallet);
|
||||||
//! Look up a destination data tuple in the store, return true if found false otherwise
|
//! Look up a destination data tuple in the store, return true if found false otherwise
|
||||||
bool GetDestData(const CTxDestination &dest, const std::string &key, std::string *value) const;
|
bool GetDestData(const CTxDestination& dest, const std::string& key, std::string* value) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet);
|
||||||
//! Get all destination values matching a prefix.
|
//! Get all destination values matching a prefix.
|
||||||
std::vector<std::string> GetDestValues(const std::string& prefix) const;
|
std::vector<std::string> GetDestValues(const std::string& prefix) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet);
|
||||||
|
|
||||||
//! Adds a watch-only address to the store, and saves it to disk.
|
//! Adds a watch-only address to the store, and saves it to disk.
|
||||||
bool AddWatchOnly(const CScript& dest, int64_t nCreateTime) EXCLUSIVE_LOCKS_REQUIRED(cs_wallet);
|
bool AddWatchOnly(const CScript& dest, int64_t nCreateTime) EXCLUSIVE_LOCKS_REQUIRED(cs_wallet);
|
||||||
|
@ -1041,7 +1041,7 @@ public:
|
||||||
|
|
||||||
bool DelAddressBook(const CTxDestination& address);
|
bool DelAddressBook(const CTxDestination& address);
|
||||||
|
|
||||||
const std::string& GetLabelName(const CScript& scriptPubKey) const;
|
const std::string& GetLabelName(const CScript& scriptPubKey) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet);
|
||||||
|
|
||||||
void GetScriptForMining(std::shared_ptr<CReserveScript> &script);
|
void GetScriptForMining(std::shared_ptr<CReserveScript> &script);
|
||||||
|
|
||||||
|
|
|
@ -94,7 +94,6 @@ static std::shared_ptr<CWallet> LoadWallet(const std::string& name, const fs::pa
|
||||||
|
|
||||||
static void WalletShowInfo(CWallet* wallet_instance)
|
static void WalletShowInfo(CWallet* wallet_instance)
|
||||||
{
|
{
|
||||||
// lock required because of some AssertLockHeld()
|
|
||||||
LOCK(wallet_instance->cs_wallet);
|
LOCK(wallet_instance->cs_wallet);
|
||||||
|
|
||||||
fprintf(stdout, "Wallet info\n===========\n");
|
fprintf(stdout, "Wallet info\n===========\n");
|
||||||
|
|
Loading…
Reference in a new issue