Fix bug in to_bytes_packed when packed size > unpacked size.
This commit is contained in:
@@ -4,16 +4,10 @@
|
||||
#include "capnp/dynamic.h"
|
||||
#include "capnp/serialize-packed.h"
|
||||
|
||||
kj::Array< ::capnp::byte> messageToPackedBytes(capnp::MessageBuilder & message)
|
||||
kj::Array< ::capnp::byte> messageToPackedBytes(capnp::MessageBuilder & message, size_t wordCount)
|
||||
{
|
||||
auto segments = message.getSegmentsForOutput();
|
||||
size_t totalSize = segments.size() / 2 + 1;
|
||||
|
||||
for (auto& segment: segments) {
|
||||
totalSize += segment.size();
|
||||
}
|
||||
|
||||
kj::Array<capnp::byte> result = kj::heapArray<capnp::byte>(totalSize * 8);
|
||||
kj::Array<capnp::byte> result = kj::heapArray<capnp::byte>(wordCount * 8);
|
||||
kj::ArrayOutputStream out(result.asPtr());
|
||||
capnp::writePackedMessage(out, message);
|
||||
return heapArray(out.getArray()); // TODO: make this non-copying somehow
|
||||
|
||||
Reference in New Issue
Block a user