mirror of
https://github.com/bitcoin/bitcoin.git
synced 2024-11-20 02:25:40 +01:00
Add CSerializedNetMsg::Copy() helper
This makes code that uses the helper less verbose. Moreover, this makes net_processing C++20 compliant. Otherwise, it would lead to a compile error (see below). C++20 disables aggregate initialization when any constructor is declared. See http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/p1008r1.pdf net_processing.cpp:1627:42: error: no matching constructor for initialization of 'CSerializedNetMsg' m_connman.PushMessage(pnode, CSerializedNetMsg{ser_cmpctblock.data, ser_cmpctblock.m_type}); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This commit is contained in:
parent
fabb7c4ba6
commit
fae679065e
13
src/net.h
13
src/net.h
@ -99,15 +99,22 @@ struct AddedNodeInfo
|
||||
class CNodeStats;
|
||||
class CClientUIInterface;
|
||||
|
||||
struct CSerializedNetMsg
|
||||
{
|
||||
struct CSerializedNetMsg {
|
||||
CSerializedNetMsg() = default;
|
||||
CSerializedNetMsg(CSerializedNetMsg&&) = default;
|
||||
CSerializedNetMsg& operator=(CSerializedNetMsg&&) = default;
|
||||
// No copying, only moves.
|
||||
// No implicit copying, only moves.
|
||||
CSerializedNetMsg(const CSerializedNetMsg& msg) = delete;
|
||||
CSerializedNetMsg& operator=(const CSerializedNetMsg&) = delete;
|
||||
|
||||
CSerializedNetMsg Copy() const
|
||||
{
|
||||
CSerializedNetMsg copy;
|
||||
copy.data = data;
|
||||
copy.m_type = m_type;
|
||||
return copy;
|
||||
}
|
||||
|
||||
std::vector<unsigned char> data;
|
||||
std::string m_type;
|
||||
};
|
||||
|
@ -1624,7 +1624,7 @@ void PeerManagerImpl::NewPoWValidBlock(const CBlockIndex *pindex, const std::sha
|
||||
hashBlock.ToString(), pnode->GetId());
|
||||
|
||||
const CSerializedNetMsg& ser_cmpctblock{lazy_ser.get()};
|
||||
m_connman.PushMessage(pnode, CSerializedNetMsg{ser_cmpctblock.data, ser_cmpctblock.m_type});
|
||||
m_connman.PushMessage(pnode, ser_cmpctblock.Copy());
|
||||
state.pindexBestHeaderSent = pindex;
|
||||
}
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user