diff options
Diffstat (limited to 'src/zencore/compactbinary.cpp')
| -rw-r--r-- | src/zencore/compactbinary.cpp | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/zencore/compactbinary.cpp b/src/zencore/compactbinary.cpp index 0907f8a2e..029889e85 100644 --- a/src/zencore/compactbinary.cpp +++ b/src/zencore/compactbinary.cpp @@ -1421,25 +1421,43 @@ LoadCompactBinary(BinaryReader& Ar, BufferAllocator Allocator) CbObject LoadCompactBinaryObject(IoBuffer&& Payload) { + if (Payload.GetSize() == 0) + { + return CbObject(); + } return CbObject{SharedBuffer(std::move(Payload))}; } CbObject LoadCompactBinaryObject(const IoBuffer& Payload) { + if (Payload.GetSize() == 0) + { + return CbObject(); + } return CbObject{SharedBuffer(Payload)}; } CbObject LoadCompactBinaryObject(CompressedBuffer&& Payload) { - return CbObject{SharedBuffer(Payload.DecompressToComposite().Flatten())}; + CompositeBuffer Decompressed = std::move(Payload).DecompressToComposite(); + if (Decompressed.GetSize() == 0) + { + return CbObject(); + } + return CbObject{std::move(Decompressed).Flatten()}; } CbObject LoadCompactBinaryObject(const CompressedBuffer& Payload) { - return CbObject{SharedBuffer(Payload.DecompressToComposite().Flatten())}; + CompositeBuffer Decompressed = Payload.DecompressToComposite(); + if (Decompressed.GetSize() == 0) + { + return CbObject(); + } + return CbObject{std::move(Decompressed).Flatten()}; } ////////////////////////////////////////////////////////////////////////// |