Skip to content

Commit 17ed38e

Browse files
Correctly reset optional fields in struct (#286)
reset() is now correctly resetting optional field presence flags.
1 parent 3b29624 commit 17ed38e

File tree

8 files changed

+25
-0
lines changed

8 files changed

+25
-0
lines changed

go/otel/otelstef/exphistogramvalue.go

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

go/otel/otelstef/histogramvalue.go

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

java/src/main/java/com/example/otelstef/ExpHistogramValue.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ void reset() {
9090
negativeBuckets.reset();
9191
}
9292
zeroThreshold = 0.0;
93+
optionalFieldsPresent = 0;
9394
}
9495

9596

java/src/main/java/com/example/otelstef/HistogramValue.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ void reset() {
7272
if (bucketCounts != null) {
7373
bucketCounts.reset();
7474
}
75+
optionalFieldsPresent = 0;
7576
}
7677

7778

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// This schema was failing (for seed 1765233907441407000) because
2+
// optional struct fields were not reset correctly by reset() method.
3+
package com.example.gentest.optional_reset_fail
4+
5+
multimap MultiMap1 {
6+
key Struct1
7+
value int64
8+
}
9+
10+
struct Struct1 root {
11+
Field1 bytes optional
12+
Field2 MultiMap1
13+
Field3 Struct1 optional
14+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
1765234703981295000

stefc/templates/go/struct.go.tmpl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,9 @@ func (s *{{ $.StructName }}) reset() {
138138
{{- end -}}
139139
{{- end -}}
140140
{{- end -}}
141+
{{- if .OptionalFieldCount}}
142+
s.optionalFieldsPresent = 0
143+
{{- end}}
141144
}
142145

143146
// fixParent sets the parentModifiedFields pointer to the supplied value.

stefc/templates/java/struct.java.tmpl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,9 @@ public class {{ .StructName }} {
7979

8080
{{- end }}
8181
{{- end }}
82+
{{- if .OptionalFieldCount}}
83+
optionalFieldsPresent = 0;
84+
{{- end}}
8285
}
8386

8487
{{ range .Fields }}

0 commit comments

Comments
 (0)