mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-12 06:58:57 +01:00
wallet: Use shared pointer to retain wallet instance
This commit is contained in:
@@ -118,7 +118,7 @@ WalletTxOut MakeWalletTxOut(CWallet& wallet, const CWalletTx& wtx, int n, int de
|
||||
class WalletImpl : public Wallet
|
||||
{
|
||||
public:
|
||||
WalletImpl(CWallet& wallet) : m_wallet(wallet) {}
|
||||
WalletImpl(const std::shared_ptr<CWallet>& wallet) : m_shared_wallet(wallet), m_wallet(*wallet.get()) {}
|
||||
|
||||
bool encryptWallet(const SecureString& wallet_passphrase) override
|
||||
{
|
||||
@@ -453,11 +453,12 @@ public:
|
||||
return MakeHandler(m_wallet.NotifyWatchonlyChanged.connect(fn));
|
||||
}
|
||||
|
||||
std::shared_ptr<CWallet> m_shared_wallet;
|
||||
CWallet& m_wallet;
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
||||
std::unique_ptr<Wallet> MakeWallet(CWallet& wallet) { return MakeUnique<WalletImpl>(wallet); }
|
||||
std::unique_ptr<Wallet> MakeWallet(const std::shared_ptr<CWallet>& wallet) { return MakeUnique<WalletImpl>(wallet); }
|
||||
|
||||
} // namespace interfaces
|
||||
|
||||
Reference in New Issue
Block a user