From aedecfc666519bbceb78f4fa80ed25e2aaffcfb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Gonz=C3=A1lez?= Date: Mon, 1 Jun 2026 16:04:04 +0200 Subject: [PATCH] Set default values before deserialize (#569) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Refs #23437. Set default values before deserialize Signed-off-by: Ricardo González Moreno * Reset optionals Signed-off-by: Ricardo González Moreno --------- Signed-off-by: Ricardo González Moreno (cherry picked from commit 6c1e623616a923297b6371edca7cbb8a67bf75ec) --- .../idl/templates/TypesCdrAuxHeaderImpl.stg | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/java/com/eprosima/fastdds/idl/templates/TypesCdrAuxHeaderImpl.stg b/src/main/java/com/eprosima/fastdds/idl/templates/TypesCdrAuxHeaderImpl.stg index cc3dfbc6..b02992fd 100644 --- a/src/main/java/com/eprosima/fastdds/idl/templates/TypesCdrAuxHeaderImpl.stg +++ b/src/main/java/com/eprosima/fastdds/idl/templates/TypesCdrAuxHeaderImpl.stg @@ -168,6 +168,20 @@ eProsima_user_DllExport void deserialize( using namespace $struct.scope$; $endif$ + $struct.allMembers : { member | + $if(member.annotationDefault)$ + data.$member.name$({$member.annotationDefaultValue$\}); + $elseif(member.annotationOptional)$ + data.$member.name$().reset(); + $elseif(!member.annotationExternal)$ + $if(member.typecode.initialValue)$ + data.$member.name$({$member.typecode.initialValue$\}); + $elseif(member.typecode.isStringType || member.typecode.isWStringType)$ + data.$member.name$({\}); + $endif$ + $endif$ + }; separator="\n"$ + cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? $if(struct.annotationFinal)$eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2$elseif(struct.annotationAppendable)$eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2$elseif(struct.annotationMutable)$eprosima::fastcdr::EncodingAlgorithmFlag::PL_CDR2$endif$ : $if(struct.annotationFinal || struct.annotationAppendable)$eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR$elseif(struct.annotationMutable)$eprosima::fastcdr::EncodingAlgorithmFlag::PL_CDR$endif$,