aboutsummaryrefslogtreecommitdiff
path: root/src/zencore/compactbinary.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/zencore/compactbinary.cpp')
-rw-r--r--src/zencore/compactbinary.cpp22
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()};
}
//////////////////////////////////////////////////////////////////////////