From 3885a63d3103ac52406c660147ee929fa9aaee63 Mon Sep 17 00:00:00 2001 From: Zach Bray Date: Mon, 26 Jun 2023 19:00:41 +0100 Subject: [PATCH] [C#] Fix bug in string encoding method. Previously it would generate something like: ``` buffer.PutByte(someOffset, (ushort) someValue); // ^^^^^^^^ ``` Where the source value was too wide for the destination. --- .../co/real_logic/sbe/generation/csharp/CSharpGenerator.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/csharp/CSharpGenerator.java b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/csharp/CSharpGenerator.java index 5a607a841..acb982161 100644 --- a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/csharp/CSharpGenerator.java +++ b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/csharp/CSharpGenerator.java @@ -513,9 +513,9 @@ private CharSequence generateVarData(final List tokens, final String inde indent + INDENT + "int byteCount = _buffer.SetBytesFromString(encoding, value, " + "limit + sizeOfLengthField);\n" + indent + INDENT + "_parentMessage.Limit = limit + sizeOfLengthField + byteCount;\n" + - indent + INDENT + "_buffer.%3$sPut%4$s(limit, (ushort)byteCount);\n" + + indent + INDENT + "_buffer.%3$sPut%4$s(limit, (%5$s)byteCount);\n" + indent + "}\n", - propertyName, sizeOfLengthField, lengthTypePrefix, byteOrderStr)); + propertyName, sizeOfLengthField, lengthTypePrefix, byteOrderStr, lengthCSharpType)); } } }