From b7bdf7ed7e80274b33e61b1dcb7482435bb50799 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Gonz=C3=A1lez?= Date: Tue, 12 Mar 2024 15:00:19 +0100 Subject: [PATCH] Fix inheritance with aliases [20621] (#316) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Refs #20619. Fix inheritance with aliases Signed-off-by: Ricardo González Moreno * Refs #20619. Update submodule Signed-off-by: Ricardo González Moreno --------- Signed-off-by: Ricardo González Moreno --- .../fastdds/idl/parser/typecode/AliasTypeCode.java | 12 ++++++++++++ .../fastdds/idl/parser/typecode/StructTypeCode.java | 8 ++++---- thirdparty/idl-parser | 2 +- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/eprosima/fastdds/idl/parser/typecode/AliasTypeCode.java b/src/main/java/com/eprosima/fastdds/idl/parser/typecode/AliasTypeCode.java index fea3d1c8..169b1c17 100644 --- a/src/main/java/com/eprosima/fastdds/idl/parser/typecode/AliasTypeCode.java +++ b/src/main/java/com/eprosima/fastdds/idl/parser/typecode/AliasTypeCode.java @@ -26,6 +26,18 @@ public AliasTypeCode( super(scope, name); } + public boolean isHasKey() + { + boolean returnedValue = false; + + if (getContentTypeCode() instanceof StructTypeCode) + { + returnedValue = ((StructTypeCode)getContentTypeCode()).isHasKey(); + } + + return returnedValue; + } + @Override public long maxSerializedSize( long current_alignment) diff --git a/src/main/java/com/eprosima/fastdds/idl/parser/typecode/StructTypeCode.java b/src/main/java/com/eprosima/fastdds/idl/parser/typecode/StructTypeCode.java index b7799b39..72e22b85 100644 --- a/src/main/java/com/eprosima/fastdds/idl/parser/typecode/StructTypeCode.java +++ b/src/main/java/com/eprosima/fastdds/idl/parser/typecode/StructTypeCode.java @@ -34,9 +34,9 @@ public boolean isHasKey() { boolean returnedValue = false; - if (getInheritance() != null) + if (getEnclosedInheritance() != null) { - returnedValue |= ((StructTypeCode)getInheritance()).isHasKey(); + returnedValue |= ((StructTypeCode)getEnclosedInheritance()).isHasKey(); } for (int count = 0; count < getMembers().size() && !returnedValue; ++count) @@ -143,9 +143,9 @@ public long maxPlainTypeSerializedSize( long initial_alignment = current_alignment; - if (getInheritance() != null) + if (getEnclosedInheritance() != null) { - current_alignment += ((StructTypeCode)getInheritance()).maxPlainTypeSerializedSize(current_alignment, align64); + current_alignment += ((StructTypeCode)getEnclosedInheritance()).maxPlainTypeSerializedSize(current_alignment, align64); } for (Member member : getMembers()) diff --git a/thirdparty/idl-parser b/thirdparty/idl-parser index 78ae712e..78558db4 160000 --- a/thirdparty/idl-parser +++ b/thirdparty/idl-parser @@ -1 +1 @@ -Subproject commit 78ae712e138c2a70c98c8717b84dd5bad164fa15 +Subproject commit 78558db4141148c263c9aab1107964f158ea016a