Skip to content

Commit 33d04eb

Browse files
authored
Disable move ctor/operator for CKeyHolder (#3162)
* Disable move ctor/operator for CKeyHolder Also fixes these warnings: ``` In file included from dsnotificationinterface.cpp:12: In file included from ./privatesend/privatesend-client.h:8: ./privatesend/privatesend-util.h:18:5: warning: explicitly defaulted move constructor is implicitly deleted [-Wdefaulted-function-deleted] CKeyHolder(CKeyHolder&&) = default; ^ ./privatesend/privatesend-util.h:13:17: note: move constructor of 'CKeyHolder' is implicitly deleted because field 'reserveKey' has a deleted move constructor CReserveKey reserveKey; ^ ./wallet/wallet.h:1282:5: note: 'CReserveKey' has been explicitly marked deleted here CReserveKey(const CReserveKey&) = delete; ^ In file included from dsnotificationinterface.cpp:12: In file included from ./privatesend/privatesend-client.h:8: ./privatesend/privatesend-util.h:19:17: warning: explicitly defaulted move assignment operator is implicitly deleted [-Wdefaulted-function-deleted] CKeyHolder& operator=(CKeyHolder&&) = default; ^ ./privatesend/privatesend-util.h:13:17: note: move assignment operator of 'CKeyHolder' is implicitly deleted because field 'reserveKey' has a deleted move assignment operator CReserveKey reserveKey; ^ ./wallet/wallet.h:1283:18: note: 'operator=' has been explicitly marked deleted here CReserveKey& operator=(const CReserveKey&) = delete; ^ 2 warnings generated. ``` * Slightly refactor `CKeyHolderStorage::AddKey()` to clarify that it's ptr and not the object itself that we are moving
1 parent 40ef0f7 commit 33d04eb

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

src/privatesend/privatesend-util.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@ CScript CKeyHolder::GetScriptForDestination() const
2828

2929
CScript CKeyHolderStorage::AddKey(CWallet* pwallet)
3030
{
31-
auto keyHolder = std::unique_ptr<CKeyHolder>(new CKeyHolder(pwallet));
32-
auto script = keyHolder->GetScriptForDestination();
31+
auto keyHolderPtr = std::unique_ptr<CKeyHolder>(new CKeyHolder(pwallet));
32+
auto script = keyHolderPtr->GetScriptForDestination();
3333

3434
LOCK(cs_storage);
35-
storage.emplace_back(std::move(keyHolder));
35+
storage.emplace_back(std::move(keyHolderPtr));
3636
LogPrintf("CKeyHolderStorage::%s -- storage size %lld\n", __func__, storage.size());
3737
return script;
3838
}

src/privatesend/privatesend-util.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ class CKeyHolder
1515

1616
public:
1717
CKeyHolder(CWallet* pwalletIn);
18-
CKeyHolder(CKeyHolder&&) = default;
19-
CKeyHolder& operator=(CKeyHolder&&) = default;
18+
CKeyHolder(CKeyHolder&&) = delete;
19+
CKeyHolder& operator=(CKeyHolder&&) = delete;
2020
void KeepKey();
2121
void ReturnKey();
2222

0 commit comments

Comments
 (0)