@@ -167,7 +167,8 @@ public void generate() throws IOException
167167
168168 out .append (generateVarData (accessOrderModel , varData , BASE_INDENT + INDENT ));
169169
170- out .append (generateDisplay (toUpperFirstChar (msgToken .name ()), fields , groups , varData ));
170+ out .append (generateDisplay (toUpperFirstChar (msgToken .name ()),
171+ fields , groups , varData , accessOrderModel ));
171172
172173 out .append (INDENT + "}\n " );
173174 out .append ("}\n " );
@@ -2378,7 +2379,8 @@ private CharSequence generateDisplay(
23782379 final String name ,
23792380 final List <Token > tokens ,
23802381 final List <Token > groups ,
2381- final List <Token > varData )
2382+ final List <Token > varData ,
2383+ final AccessOrderModel accessOrderModel )
23822384 {
23832385 final StringBuilder sb = new StringBuilder (100 );
23842386
@@ -2392,6 +2394,12 @@ private CharSequence generateDisplay(
23922394 append (sb , TWO_INDENT , " }" );
23932395 sb .append ('\n' );
23942396 append (sb , TWO_INDENT , " int originalLimit = this.Limit;" );
2397+ sb .append ("#if ENABLE_ACCESS_ORDER_CHECKS\n " );
2398+ append (sb , TWO_INDENT , " CodecState originalState = _codecState;" );
2399+ sb .append (THREE_INDENT ).append ("_codecState = " )
2400+ .append (qualifiedStateCase (accessOrderModel .notWrappedState ())).append (";\n " );
2401+ append (sb , TWO_INDENT , " OnWrapForDecode(_actingVersion);" );
2402+ sb .append ("#endif\n " );
23952403 append (sb , TWO_INDENT , " this.Limit = _offset + _actingBlockLength;" );
23962404 append (sb , TWO_INDENT , " builder.Append(\" [" + name + "](sbeTemplateId=\" );" );
23972405 append (sb , TWO_INDENT , " builder.Append(" + name + ".TemplateId);" );
@@ -2415,6 +2423,9 @@ private CharSequence generateDisplay(
24152423 sb .append ('\n' );
24162424 appendDisplay (sb , tokens , groups , varData , THREE_INDENT );
24172425 sb .append ('\n' );
2426+ sb .append ("#if ENABLE_ACCESS_ORDER_CHECKS\n " );
2427+ append (sb , TWO_INDENT , " _codecState = originalState;" );
2428+ sb .append ("#endif\n " );
24182429 append (sb , TWO_INDENT , " this.Limit = originalLimit;" );
24192430 sb .append ('\n' );
24202431 append (sb , TWO_INDENT , "}" );
0 commit comments