diff options
author | João Barbosa <joao.paulo.barbosa@gmail.com> | 2020-02-16 11:38:49 +0000 |
---|---|---|
committer | fanquake <fanquake@gmail.com> | 2020-06-09 20:50:21 +0800 |
commit | 30a28146ac23aa3a9e510c5d6ab9a8d2c5b8177e (patch) | |
tree | 64d9fecb8043ed6e8e04c641e6e329ced8bfb54f /src/interfaces/wallet.cpp | |
parent | 0d87a5b4e2153a00e33474b56b48f0814c231697 (diff) | |
download | bitcoin-30a28146ac23aa3a9e510c5d6ab9a8d2c5b8177e.tar.xz |
gui: Avoid Wallet::GetBalance in WalletModel::pollBalanceChanged
Github-Pull: #18160
Rebased-From: 0933a37078e1ce3a3d70983c3e7f4b3ac6c3fa37
Diffstat (limited to 'src/interfaces/wallet.cpp')
-rw-r--r-- | src/interfaces/wallet.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/interfaces/wallet.cpp b/src/interfaces/wallet.cpp index 0c8d92eba5..dbf0acbfbe 100644 --- a/src/interfaces/wallet.cpp +++ b/src/interfaces/wallet.cpp @@ -359,16 +359,17 @@ public: } return result; } - bool tryGetBalances(WalletBalances& balances, int& num_blocks) override + bool tryGetBalances(WalletBalances& balances, int& num_blocks, bool force, int cached_num_blocks) override { auto locked_chain = m_wallet->chain().lock(true /* try_lock */); if (!locked_chain) return false; + num_blocks = locked_chain->getHeight().get_value_or(-1); + if (!force && num_blocks == cached_num_blocks) return false; TRY_LOCK(m_wallet->cs_wallet, locked_wallet); if (!locked_wallet) { return false; } balances = getBalances(); - num_blocks = locked_chain->getHeight().get_value_or(-1); return true; } CAmount getBalance() override { return m_wallet->GetBalance().m_mine_trusted; } |