diff --git a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java index ec1b200d3d..2d8da61aa0 100755 --- a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java +++ b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java @@ -531,12 +531,12 @@ private void generateVarData( indent + " %3$s lengthFieldValue = %4$s(length);\n" + indent + " sbePosition(lengthPosition + lengthOfLengthField);\n" + indent + " std::memcpy(m_buffer + lengthPosition, &lengthFieldValue, sizeof(%3$s));\n" + - indent + " if (length != %3$s(0))" + - indent + " {" + + indent + " if (length != %3$s(0))\n" + + indent + " {\n" + indent + " std::uint64_t pos = sbePosition();\n" + indent + " sbePosition(pos + length);\n" + indent + " std::memcpy(m_buffer + pos, src, length);\n" + - indent + " }" + + indent + " }\n" + indent + " return *this;\n" + indent + " }\n", propertyName,