Skip to content

Commit c1730d4

Browse files
fanquakeknst
authored andcommitted
Merge bitcoin#25872: Fix issues when calling std::move(const&)
BACKPORT NOTE: Some missing changes for TRDescriptor and for mempool_args But they will be caugth by linter ---- fa87534 Fix iwyu (MacroFake) faad673 Fix issues when calling std::move(const&) (MacroFake) Pull request description: Passing a symbol to `std::move` that is marked `const` is a no-op, which can be fixed in two ways: * Remove the `const`, or * Remove the `std::move` ACKs for top commit: ryanofsky: Code review ACK fa87534. Looks good. Good for univalue to support c++11 move optimizations Tree-SHA512: 3dc5cad55b93cfa311abedfb811f35fc1b7f30a1c68561f15942438916c7de25e179c364be11881e01f844f9c2ccd71a3be55967ad5abd2f35b10bb7a882edea
1 parent 24c3c0a commit c1730d4

File tree

18 files changed

+32
-31
lines changed

18 files changed

+32
-31
lines changed

ci/dash/lint-tidy.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ iwyu_tool.py \
4444
"src/util/moneystr.cpp" \
4545
"src/util/serfloat.cpp" \
4646
"src/util/spanparsing.cpp" \
47+
"src/util/string.cpp" \
4748
"src/util/strencodings.cpp" \
4849
"src/util/syserror.cpp" \
4950
"src/util/url.cpp" \

src/.clang-tidy

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ misc-unused-using-decls,
66
modernize-use-default-member-init,
77
modernize-use-nullptr,
88
performance-for-range-copy,
9+
performance-move-const-arg,
910
performance-unnecessary-copy-initialization,
1011
readability-const-return-type,
1112
readability-redundant-declaration,
@@ -17,7 +18,11 @@ bugprone-use-after-move,
1718
misc-unused-using-decls,
1819
modernize-use-default-member-init,
1920
modernize-use-nullptr,
21+
performance-move-const-arg,
2022
performance-unnecessary-copy-initialization,
2123
readability-redundant-declaration,
2224
readability-redundant-string-init,
2325
'
26+
CheckOptions:
27+
- key: performance-move-const-arg.CheckTriviallyCopyableMove
28+
value: false

src/evo/specialtxman.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -505,7 +505,7 @@ bool CSpecialTxProcessor::RebuildListFromBlock(const CBlock& block, gsl::not_nul
505505
newList.UpdateMN(dmn.proTxHash, newState);
506506
});
507507

508-
mnListRet = std::move(newList);
508+
mnListRet = newList;
509509

510510
return true;
511511
}

src/instantsend/instantsend.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ instantsend::PendingState CInstantSendManager::FetchPendingLocks()
101101
std::vector<uint256> removed;
102102
removed.reserve(std::min(maxCount, pendingInstantSendLocks.size()));
103103

104-
for (const auto& [islockHash, nodeid_islptr_pair] : pendingInstantSendLocks) {
104+
for (auto& [islockHash, nodeid_islptr_pair] : pendingInstantSendLocks) {
105105
// Check if we've reached max count
106106
if (ret.m_pending_is.size() >= maxCount) {
107107
ret.m_pending_work = true;

src/llmq/blockprocessor.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -441,7 +441,7 @@ bool CQuorumBlockProcessor::GetCommitmentsFromBlock(const CBlock& block, gsl::no
441441

442442
for (const auto& tx : block.vtx) {
443443
if (tx->nType == TRANSACTION_QUORUM_COMMITMENT) {
444-
const auto opt_qc = GetTxPayload<CFinalCommitmentTxPayload>(*tx);
444+
auto opt_qc = GetTxPayload<CFinalCommitmentTxPayload>(*tx);
445445
if (!opt_qc) {
446446
// should not happen as it was verified before processing the block
447447
LogPrint(BCLog::LLMQ, "CQuorumBlockProcessor::%s height=%d GetTxPayload fails\n", __func__, pindex->nHeight);

src/llmq/snapshot.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -209,17 +209,16 @@ bool BuildQuorumRotationInfo(CDeterministicMNManager& dmnman, CQuorumSnapshotMan
209209
response.quorumSnapshotAtHMinus4C = std::move(snapshotHMinus4C.value());
210210
}
211211

212-
CSimplifiedMNListDiff mn4c;
213212
if (!BuildSimplifiedMNListDiff(dmnman, chainman, qblockman, qman,
214213
GetLastBaseBlockHash(baseBlockIndexes, pWorkBlockHMinus4CIndex,
215214
use_legacy_construction),
216-
pWorkBlockHMinus4CIndex->GetBlockHash(), mn4c, errorRet)) {
215+
pWorkBlockHMinus4CIndex->GetBlockHash(), response.mnListDiffAtHMinus4C, errorRet)) {
216+
response.mnListDiffAtHMinus4C = {};
217217
return false;
218218
}
219219
if (!use_legacy_construction) {
220220
baseBlockIndexes.push_back(pWorkBlockHMinus4CIndex);
221221
}
222-
response.mnListDiffAtHMinus4C = std::move(mn4c);
223222
} else {
224223
response.extraShare = false;
225224
}

src/masternode/meta.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ std::optional<PlatformBanMessage> CMasternodeMetaMan::GetPlatformBan(const uint2
150150
void CMasternodeMetaMan::RememberPlatformBan(const uint256& inv_hash, PlatformBanMessage&& msg)
151151
{
152152
LOCK(cs);
153-
m_seen_platform_bans.insert(inv_hash, std::move(msg));
153+
m_seen_platform_bans.emplace(inv_hash, std::move(msg));
154154
}
155155

156156
void CMasternodeMetaMan::AddUsedMasternode(const uint256& proTxHash)

src/rpc/blockchain.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2527,7 +2527,7 @@ static RPCHelpMan scantxoutset()
25272527
for (const UniValue& scanobject : request.params[1].get_array().getValues()) {
25282528
FlatSigningProvider provider;
25292529
auto scripts = EvalDescriptorStringOrObject(scanobject, provider);
2530-
for (const auto& script : scripts) {
2530+
for (CScript& script : scripts) {
25312531
std::string inferred = InferDescriptor(script, provider)->ToString();
25322532
needles.emplace(script);
25332533
descriptors.emplace(std::move(script), std::move(inferred));

src/script/descriptor.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -547,7 +547,7 @@ class DescriptorImpl : public Descriptor
547547
if (pos++) ret += ",";
548548
std::string tmp;
549549
if (!scriptarg->ToStringHelper(arg, tmp, type, cache)) return false;
550-
ret += std::move(tmp);
550+
ret += tmp;
551551
}
552552
return true;
553553
}
@@ -571,7 +571,7 @@ class DescriptorImpl : public Descriptor
571571
tmp = pubkey->ToString();
572572
break;
573573
}
574-
ret += std::move(tmp);
574+
ret += tmp;
575575
}
576576
std::string subscript;
577577
if (!ToStringSubScriptHelper(arg, subscript, type, cache)) return false;

src/test/fuzz/txorphan.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
#include <util/check.h>
2020
#include <util/time.h>
2121

22-
#include <algorithm>
2322
#include <cstdint>
2423
#include <memory>
2524
#include <set>

0 commit comments

Comments
 (0)