mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-06-03 17:54:19 +02:00
Merge bitcoin/bitcoin#31519: refactor: Use std::span over Span
ffff4a293abench: Update span-serialize comment (MarcoFalke)fa4d6ec97brefactor: Avoid false-positive gcc warning (MarcoFalke)fa942332b4scripted-diff: Bump copyright headers after std::span changes (MarcoFalke)fa0c6b7179refactor: Remove unused Span alias (MarcoFalke)fade0b5e5escripted-diff: Use std::span over Span (MarcoFalke)fadccc26c0refactor: Make Span an alias of std::span (MarcoFalke)fa27e36717test: Fix broken span_tests (MarcoFalke)fadf02ef8brefactor: Return std::span from MakeUCharSpan (MarcoFalke)fa720b94berefactor: Return std::span from MakeByteSpan (MarcoFalke) Pull request description: `Span` has some issues: * It does not support fixed-size spans, which are available through `std::span`. * It is confusing to have it available and in use at the same time with `std::span`. * It does not obey the standard library iterator build hardening flags. See https://github.com/bitcoin/bitcoin/issues/31272 for a discussion. For example, this allows to catch issues like the one fixed in commitfabeca3458. Both types are type-safe and can even implicitly convert into each other in most contexts. However, exclusively using `std::span` seems less confusing, so do it here with a scripted-diff. ACKs for top commit: l0rinc: reACKffff4a293atheuni: ACKffff4a293a. Tree-SHA512: 9cc2f1f43551e2c07cc09f38b1f27d11e57e9e9bc0c6138c8fddd0cef54b91acd8b14711205ff949be874294a121910d0aceffe0e8914c4cff07f1e0e87ad5b8
This commit is contained in:
@@ -392,7 +392,7 @@ void SanityCheck(const DepGraph<SetType>& depgraph)
|
||||
|
||||
/** Perform a sanity check on a linearization. */
|
||||
template<typename SetType>
|
||||
void SanityCheck(const DepGraph<SetType>& depgraph, Span<const ClusterIndex> linearization)
|
||||
void SanityCheck(const DepGraph<SetType>& depgraph, std::span<const ClusterIndex> linearization)
|
||||
{
|
||||
// Check completeness.
|
||||
assert(linearization.size() == depgraph.TxCount());
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2020-2022 The Bitcoin Core developers
|
||||
// Copyright (c) 2020-present The Bitcoin Core developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
@@ -71,7 +71,7 @@ void ConnmanTestMsg::Handshake(CNode& node,
|
||||
}
|
||||
}
|
||||
|
||||
void ConnmanTestMsg::NodeReceiveMsgBytes(CNode& node, Span<const uint8_t> msg_bytes, bool& complete) const
|
||||
void ConnmanTestMsg::NodeReceiveMsgBytes(CNode& node, std::span<const uint8_t> msg_bytes, bool& complete) const
|
||||
{
|
||||
assert(node.ReceiveMsgBytes(msg_bytes, complete));
|
||||
if (complete) {
|
||||
@@ -279,7 +279,7 @@ std::optional<CNetMessage> DynSock::Pipe::GetNetMsg()
|
||||
}
|
||||
|
||||
for (;;) {
|
||||
Span<const uint8_t> s{m_data};
|
||||
std::span<const uint8_t> s{m_data};
|
||||
if (!transport.ReceivedBytes(s)) { // Consumed bytes are removed from the front of s.
|
||||
return std::nullopt;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2020-2022 The Bitcoin Core developers
|
||||
// Copyright (c) 2020-present The Bitcoin Core developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
@@ -81,7 +81,7 @@ struct ConnmanTestMsg : public CConnman {
|
||||
return m_msgproc->ProcessMessages(&node, flagInterruptMsgProc);
|
||||
}
|
||||
|
||||
void NodeReceiveMsgBytes(CNode& node, Span<const uint8_t> msg_bytes, bool& complete) const;
|
||||
void NodeReceiveMsgBytes(CNode& node, std::span<const uint8_t> msg_bytes, bool& complete) const;
|
||||
|
||||
bool ReceiveMsgFrom(CNode& node, CSerializedNetMsg&& ser_msg) const;
|
||||
void FlushSendBuffer(CNode& node) const;
|
||||
|
||||
Reference in New Issue
Block a user