Skip to content

Commit e4dd872

Browse files
authored
Fix to not allocate to the heap when iterating over repeating groups in golang 1.22 (#994)
Verify by running ```golang go build -gcflags=all=-d=loopvar=2 ```
1 parent 2a2d308 commit e4dd872

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/golang/GolangGenerator.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1276,8 +1276,8 @@ private int generateGroupEncodeDecode(
12761276

12771277
// Write the group itself
12781278
encode.append(String.format(
1279-
"\tfor _, prop := range %1$s.%2$s {\n" +
1280-
"\t\tif err := prop.Encode(_m, _w); err != nil {\n" +
1279+
"\tfor i := range %1$s.%2$s {\n" +
1280+
"\t\tif err := %1$s.%2$s[i].Encode(_m, _w); err != nil {\n" +
12811281
"\t\t\treturn err\n" +
12821282
"\t\t}\n",
12831283
varName,
@@ -1329,8 +1329,8 @@ private int generateGroupEncodeDecode(
13291329

13301330
// Range check the group itself
13311331
rc.append(String.format(
1332-
"\tfor _, prop := range %1$s.%2$s {\n" +
1333-
"\t\tif err := prop.RangeCheck(actingVersion, schemaVersion); err != nil {\n" +
1332+
"\tfor i := range %1$s.%2$s {\n" +
1333+
"\t\tif err := %1$s.%2$s[i].RangeCheck(actingVersion, schemaVersion); err != nil {\n" +
13341334
"\t\t\treturn err\n" +
13351335
"\t\t}\n" +
13361336
"\t}\n",

0 commit comments

Comments
 (0)