From 17d433fbcd7324aed7ce6edc8cd269ff6230b6f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Gonz=C3=A1lez=20Moreno?= Date: Tue, 10 Sep 2024 11:26:32 +0200 Subject: [PATCH] Refs #21621. Improve code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Ricardo González Moreno --- .../fastcdr/idl/templates/TypesHeader.stg | 38 +++++++------------ 1 file changed, 14 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/eprosima/fastcdr/idl/templates/TypesHeader.stg b/src/main/java/com/eprosima/fastcdr/idl/templates/TypesHeader.stg index 5e5e824d..661c2489 100644 --- a/src/main/java/com/eprosima/fastcdr/idl/templates/TypesHeader.stg +++ b/src/main/java/com/eprosima/fastcdr/idl/templates/TypesHeader.stg @@ -296,23 +296,9 @@ public: eProsima_user_DllExport $union.name$() { $if(union.defaultAnnotatedMember)$ - selected_member_ = $union.defaultAnnotatedMember.id$; - $if(union.defaultAnnotatedMember.typecode.primitive)$ - member_destructor_ = nullptr; - m_$union.defaultAnnotatedMember.name$ = $member_default_init(union.defaultAnnotatedMember)$; - $else$ - member_destructor_ = [&]() {$union_member_destroy_call(union.defaultAnnotatedMember)$\}; - new(&m_$union.defaultAnnotatedMember.name$) $member_type_declaration(union.defaultAnnotatedMember)$(); - $endif$; + $union_member_initialization(union.defaultAnnotatedMember)$ $elseif(union.defaultMember)$ - selected_member_ = $union.defaultMember.id$; - $if(union.defaultMember.typecode.primitive)$ - member_destructor_ = nullptr; - m_$union.defaultMember.name$ = $member_default_init(union.defaultMember)$; - $else$ - member_destructor_ = [&]() {$union_member_destroy_call(union.defaultMember)$\}; - new(&m_$union.defaultMember.name$) $member_type_declaration(union.defaultMember)$(); - $endif$; + $union_member_initialization(union.defaultMember)$ $endif$ } @@ -512,14 +498,7 @@ private: member_destructor_(); \} - selected_member_ = $member.id$; - $if(member.typecode.primitive)$ - member_destructor_ = nullptr; - m_$member.name$ = $member_default_init(member)$; - $else$ - member_destructor_ = [&]() {$union_member_destroy_call(member)$\}; - new(&m_$member.name$) $member_type_declaration(member)$(); - $endif$; + $union_member_initialization(member)$ \} return m_$member.name$; @@ -836,6 +815,17 @@ m__d = $first(member.labels)$; $endif$ %> +union_member_initialization(member) ::= << +selected_member_ = $member.id$; +$if(member.typecode.primitive)$ +member_destructor_ = nullptr; +m_$member.name$ = $member_default_init(member)$; +$else$ +member_destructor_ = [&]() {$union_member_destroy_call(member)$\}; +new(&m_$member.name$) $member_type_declaration(member)$(); +$endif$ +>> + //{ Fast DDS-Gen extensions module_conversion(ctx, parent, modules, definition_list) ::= << $modules : { module |