File tree Expand file tree Collapse file tree 1 file changed +12
-6
lines changed
sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/java Expand file tree Collapse file tree 1 file changed +12
-6
lines changed Original file line number Diff line number Diff line change @@ -371,14 +371,20 @@ private void generateComputeEncodedLength(
371
371
.append (formatPropertyName (propertyName )).append ("HeaderLength();\n " );
372
372
373
373
final String characterEncoding = varDataToken .encoding ().characterEncoding ();
374
- final String lengthAccessor = characterEncoding == null ? ".length" : ".length()" ;
375
- lengthBuilder .append (indent ).append (INDENT ).append ("encodedLength += " )
376
- .append ("this." ).append (fieldName ).append (lengthAccessor );
374
+ lengthBuilder .append (indent ).append (INDENT ).append ("encodedLength += " );
377
375
378
- final int elementByteLength = varDataToken .encoding ().primitiveType ().size ();
379
- if (elementByteLength != 1 )
376
+ if (characterEncoding == null )
377
+ {
378
+ lengthBuilder .append ("this." ).append (fieldName ).append (".length" );
379
+ }
380
+ else if (JavaUtil .isAsciiEncoding (characterEncoding ))
381
+ {
382
+ lengthBuilder .append ("this." ).append (fieldName ).append (".length()" );
383
+ }
384
+ else
380
385
{
381
- lengthBuilder .append (" * " ).append (elementByteLength );
386
+ lengthBuilder .append ("this." ).append (fieldName )
387
+ .append (".getBytes(" ).append (JavaUtil .charset (characterEncoding )).append (").length" );
382
388
}
383
389
384
390
lengthBuilder .append (";\n \n " );
You can’t perform that action at this time.
0 commit comments