refactor: Disable unused special members functions in UnlockContext

This commit is contained in:
Hennadii Stepanov 2023-02-14 17:55:57 +00:00
parent fb2f093479
commit 9fa43b5af6
No known key found for this signature in database
GPG key ID: 410108112E7EA81F
2 changed files with 8 additions and 17 deletions

View file

@ -477,13 +477,6 @@ WalletModel::UnlockContext::~UnlockContext()
} }
} }
void WalletModel::UnlockContext::CopyFrom(UnlockContext&& rhs)
{
// Transfer context; old object no longer relocks wallet
*this = rhs;
rhs.relock = false;
}
bool WalletModel::bumpFee(uint256 hash, uint256& new_hash) bool WalletModel::bumpFee(uint256 hash, uint256& new_hash)
{ {
CCoinControl coin_control; CCoinControl coin_control;

View file

@ -111,7 +111,7 @@ public:
bool setWalletLocked(bool locked, const SecureString &passPhrase=SecureString()); bool setWalletLocked(bool locked, const SecureString &passPhrase=SecureString());
bool changePassphrase(const SecureString &oldPass, const SecureString &newPass); bool changePassphrase(const SecureString &oldPass, const SecureString &newPass);
// RAI object for unlocking wallet, returned by requestUnlock() // RAII object for unlocking wallet, returned by requestUnlock()
class UnlockContext class UnlockContext
{ {
public: public:
@ -120,18 +120,16 @@ public:
bool isValid() const { return valid; } bool isValid() const { return valid; }
// Copy constructor is disabled. // Disable unused copy/move constructors/assignments explicitly.
UnlockContext(const UnlockContext&) = delete; UnlockContext(const UnlockContext&) = delete;
// Move operator and constructor transfer the context UnlockContext(UnlockContext&&) = delete;
UnlockContext(UnlockContext&& obj) { CopyFrom(std::move(obj)); } UnlockContext& operator=(const UnlockContext&) = delete;
UnlockContext& operator=(UnlockContext&& rhs) { CopyFrom(std::move(rhs)); return *this; } UnlockContext& operator=(UnlockContext&&) = delete;
private: private:
WalletModel *wallet; WalletModel *wallet;
bool valid; const bool valid;
mutable bool relock; // mutable, as it can be set to false by copying const bool relock;
UnlockContext& operator=(const UnlockContext&) = default;
void CopyFrom(UnlockContext&& rhs);
}; };
UnlockContext requestUnlock(); UnlockContext requestUnlock();