Index: third_party/mojo/src/mojo/public/tools/bindings/generators/go_templates/struct.tmpl |
diff --git a/third_party/mojo/src/mojo/public/tools/bindings/generators/go_templates/struct.tmpl b/third_party/mojo/src/mojo/public/tools/bindings/generators/go_templates/struct.tmpl |
index eb6b1218cf947991ee03b4768f35d9b2243e0c6f..c9f044a63e6f500b4f93cd3a0b255ff8a2ff9e8c 100644 |
--- a/third_party/mojo/src/mojo/public/tools/bindings/generators/go_templates/struct.tmpl |
+++ b/third_party/mojo/src/mojo/public/tools/bindings/generators/go_templates/struct.tmpl |
@@ -10,7 +10,7 @@ type {{struct|name(exported)}} struct { |
} |
func (s *{{struct|name(exported)}}) Encode(encoder *bindings.Encoder) error { |
- encoder.StartStruct({{struct.versions[-1].num_bytes}}, {{struct.packed.packed_fields|length}}) |
+ encoder.StartStruct({{struct.versions[-1].num_bytes}}, {{struct.versions[-1].version}}) |
{% for byte in struct.bytes %} |
{% for packed_field in byte.packed_fields %} |
{{encode('s.'~packed_field.field|name(exported), packed_field.field.kind)|tab_indent()}} |
@@ -24,7 +24,7 @@ func (s *{{struct|name(exported)}}) Encode(encoder *bindings.Encoder) error { |
func (s *{{struct|name(exported)}}) Decode(decoder *bindings.Decoder) error { |
{% if struct.bytes %} |
- numFields, err := decoder.StartStruct() |
+ version, err := decoder.StartStruct() |
{% else %} |
_, err := decoder.StartStruct() |
{% endif %} |
@@ -33,7 +33,7 @@ func (s *{{struct|name(exported)}}) Decode(decoder *bindings.Decoder) error { |
} |
{% for byte in struct.bytes %} |
{% for packed_field in byte.packed_fields %} |
- if numFields > {{packed_field.ordinal}} { |
+ if version >= {{packed_field.min_version}} { |
{{decode('s.'~packed_field.field|name(exported), packed_field.field.kind)|tab_indent(2)}} |
} |
{% endfor %} |