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)
{
CCoinControl coin_control;

View file

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