Support serializing Span<unsigned char> and use that instead of FLATDATA

This commit is contained in:
Pieter Wuille
2018-04-04 12:40:10 -07:00
parent 833bc08583
commit 9272d70536
3 changed files with 16 additions and 48 deletions

View File

@@ -11,6 +11,7 @@
#include <compat.h>
#include <serialize.h>
#include <span.h>
#include <stdint.h>
#include <string>
@@ -167,10 +168,13 @@ class CService : public CNetAddr
template <typename Stream, typename Operation>
inline void SerializationOp(Stream& s, Operation ser_action) {
READWRITE(ip);
// TODO: introduce native support for BE serialization in serialize.h
unsigned short portN = htons(port);
READWRITE(FLATDATA(portN));
if (ser_action.ForRead())
READWRITE(Span<unsigned char>((unsigned char*)&portN, 2));
if (ser_action.ForRead()) {
port = ntohs(portN);
}
}
};