From eb5d65cb832bb03f1f8c335b5472bd2f67eabc6d Mon Sep 17 00:00:00 2001 From: Miki Rozloznik Date: Wed, 17 Apr 2024 16:01:06 +0200 Subject: [PATCH] Fix old C-style cast in generated code for extended members --- .../extensions/cpp/freemarker/Structure.cpp.ftl | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/compiler/extensions/cpp/freemarker/Structure.cpp.ftl b/compiler/extensions/cpp/freemarker/Structure.cpp.ftl index 81796e77f..c2b2abd01 100644 --- a/compiler/extensions/cpp/freemarker/Structure.cpp.ftl +++ b/compiler/extensions/cpp/freemarker/Structure.cpp.ftl @@ -557,8 +557,11 @@ void ${name}::write(${name}::ZserioPackingContext&<#if uses_packing_context(fiel <#if field.isExtended> if (::zserio::alignTo(UINT8_C(8), in.getBitPosition()) >= in.getBufferBitSize()) { - return <#if !field.typeInfo.isSimple><@field_member_type_name field/>(<#rt> - <#lt><@field_default_constructor_arguments field/><#if !field.typeInfo.isSimple>); + <#if !field.typeInfo.isSimple && !(field.typeInfo.isString && field.initializer??)> + return <@field_member_type_name field/>(<@field_default_constructor_arguments field/>); + <#else> + return <@field_default_constructor_arguments field/>; + } ++m_numExtendedFields; in.alignTo(UINT32_C(8)); @@ -579,8 +582,11 @@ void ${name}::write(${name}::ZserioPackingContext&<#if uses_packing_context(fiel <#if field.isExtended> if (::zserio::alignTo(UINT8_C(8), in.getBitPosition()) >= in.getBufferBitSize()) { - return <#if !field.typeInfo.isSimple><@field_member_type_name field/>(<#rt> - <#lt><@field_default_constructor_arguments field/><#if !field.typeInfo.isSimple>); + <#if !field.typeInfo.isSimple && !(field.typeInfo.isString && field.initializer??)> + return <@field_member_type_name field/>(<@field_default_constructor_arguments field/>); + <#else> + return <@field_default_constructor_arguments field/>; + } ++m_numExtendedFields; in.alignTo(UINT32_C(8)); @@ -589,5 +595,6 @@ void ${name}::write(${name}::ZserioPackingContext&<#if uses_packing_context(fiel <@compound_read_field field, name, 1, true/> } + <@namespace_end package.path/>