diff --git a/src/dataencode.cpp b/src/dataencode.cpp index d2013f0..0973979 100644 --- a/src/dataencode.cpp +++ b/src/dataencode.cpp @@ -353,23 +353,35 @@ void to_wire_field(Buffer& buf, const FieldDesc* desc, const std::shared_ptr(buf, fld); return; case TypeCode::Int8A: + to_wire(buf, fld); + return; case TypeCode::UInt8A: to_wire(buf, fld); return; case TypeCode::Int16A: + to_wire(buf, fld); + return; case TypeCode::UInt16A: to_wire(buf, fld); return; case TypeCode::Int32A: + to_wire(buf, fld); + return; case TypeCode::UInt32A: - case TypeCode::Float32A: to_wire(buf, fld); return; + case TypeCode::Float32A: + to_wire(buf, fld); + return; case TypeCode::Int64A: + to_wire(buf, fld); + return; case TypeCode::UInt64A: - case TypeCode::Float64A: to_wire(buf, fld); return; + case TypeCode::Float64A: + to_wire(buf, fld); + return; case TypeCode::StringA: to_wire(buf, fld); return; @@ -587,23 +599,35 @@ void from_wire_field(Buffer& buf, TypeStore& ctxt, const FieldDesc* desc, const from_wire(buf, fld); return; case TypeCode::Int8A: + from_wire(buf, fld); + return; case TypeCode::UInt8A: from_wire(buf, fld); return; case TypeCode::Int16A: + from_wire(buf, fld); + return; case TypeCode::UInt16A: from_wire(buf, fld); return; case TypeCode::Int32A: + from_wire(buf, fld); + return; case TypeCode::UInt32A: - case TypeCode::Float32A: from_wire(buf, fld); return; + case TypeCode::Float32A: + from_wire(buf, fld); + return; case TypeCode::Int64A: + from_wire(buf, fld); + return; case TypeCode::UInt64A: - case TypeCode::Float64A: from_wire(buf, fld); return; + case TypeCode::Float64A: + from_wire(buf, fld); + return; case TypeCode::StringA: from_wire(buf, fld); return; diff --git a/test/testxcode.cpp b/test/testxcode.cpp index 1c80cc1..c7d3584 100644 --- a/test/testxcode.cpp +++ b/test/testxcode.cpp @@ -548,7 +548,9 @@ void testArrayXCode() testDiag("%s", __func__); testArrayXCodeT("\x01\x02\x00", {}); + testArrayXCodeT("\x01\x02\x01\x12\x34\x56\x78", {0x12345678}); testArrayXCodeT("\x01\x02\x02\x00\x01\xff\xff", {1u, 0xffff}); + testArrayXCodeT("\x01\x02\x01?\xf0\x00\x00\x00\x00\x00\x00", {1.0}); testArrayXCodeT("\x01\x02\x02\x05hello\x05world", {"hello", "world"}); } @@ -950,7 +952,7 @@ void testEmptyRequest() MAIN(testxcode) { - testPlan(110); + testPlan(116); testSerialize1(); testDeserialize1(); testSimpleDef();