ByteBuffer: handle read errors

This commit is contained in:
2024-08-20 18:51:01 +02:00
parent ce2c4574af
commit bebc306097
3 changed files with 64 additions and 27 deletions

View File

@@ -68,7 +68,8 @@ class Deserializer : public PacketVisitor {
bool Deserialize(const PacketPtr& a_Packet) {
try {
Check(*a_Packet.get());
} catch (std::exception& e) {
} catch (ByteBuffer::ReadError& e) {
godot::UtilityFunctions::printerr("[PacketSerializer::Deserializer] ", e.what());
return false;
}
return true;
@@ -109,6 +110,7 @@ std::unique_ptr<Packet> Deserialize(godot::PackedByteArray& a_Data) {
const PacketPtr& emptyPacket = PacketFactory::CreateReadOnlyPacket(packetType);
Deserializer deserializer(std::move(stream));
if (deserializer.Deserialize(emptyPacket)) {
PacketPtr packet = std::move(deserializer.GetPacket());
return packet;