Skip to content

Commit 102f05f

Browse files
committed
feat: Updated the template to correctly calculate the sizeInBits, if an array of dynamic length integers is being used.
1 parent fb062dc commit 102f05f

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

code-generation/language-java/src/main/resources/templates/java/complex-type-template.java.ftlh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,17 @@ public<#if type.isDiscriminatedParentTypeDefinition()> abstract</#if> class ${ty
418418
if(${arrayField.name} != null) {
419419
<#if arrayElementTypeReference.isSimpleTypeReference()>
420420
<#assign simpleTypeReference = arrayElementTypeReference.asSimpleTypeReference().orElseThrow()>
421+
<#if helper.isVarduintField(arrayField)>
422+
for(${helper.getLanguageTypeNameForTypeReference(simpleTypeReference, false)} _val : get${arrayField.getName()?cap_first}()) {
423+
lengthInBits += GET_VARDUINT_LENGTH_IN_BITS(_val);
424+
}
425+
<#elseif helper.isVardintField(arrayField)>
426+
for(${helper.getLanguageTypeNameForTypeReference(simpleTypeReference, false)} _val : get${arrayField.getName()?cap_first}()) {
427+
lengthInBits += GET_VARDINT_LENGTH_IN_BITS(_val);
428+
}
429+
<#else>
421430
lengthInBits += ${simpleTypeReference.sizeInBits} * ${arrayField.name}.<#if arrayElementTypeReference.isByteBased()>length<#else>size()</#if>;
431+
</#if>
422432
<#elseif arrayField.isCountArrayField()>
423433
int i=0;
424434
<#assign nonSimpleTypeReference = arrayElementTypeReference.asNonSimpleTypeReference().orElseThrow()>

0 commit comments

Comments
 (0)