| Index: third_party/mojo/src/mojo/public/tools/bindings/generators/dart_templates/struct_definition.tmpl
|
| diff --git a/third_party/mojo/src/mojo/public/tools/bindings/generators/dart_templates/struct_definition.tmpl b/third_party/mojo/src/mojo/public/tools/bindings/generators/dart_templates/struct_definition.tmpl
|
| index 93a3e428b42a347bf60ff3414981ecf6447bb3c8..7538e8bf5e96876a87e51d7ea9b2ff0ab11a1a20 100644
|
| --- a/third_party/mojo/src/mojo/public/tools/bindings/generators/dart_templates/struct_definition.tmpl
|
| +++ b/third_party/mojo/src/mojo/public/tools/bindings/generators/dart_templates/struct_definition.tmpl
|
| @@ -12,7 +12,7 @@ if ({{variable}} == null) {
|
| {%- endif %}
|
| var encoder{{level + 1}} = encoder{{level}}.encodePointerArray({{variable}}.length, {{offset}}, {{kind|array_expected_length}});
|
| for (int i{{level}} = 0; i{{level}} < {{variable}}.length; ++i{{level}}) {
|
| - {{encode(variable~'[i'~level~']', sub_kind, 'bindings.DataHeader.kHeaderSize + bindings.kPointerSize * i'~level, 0, level+1)|indent(4)}}
|
| + {{encode(variable~'[i'~level~']', sub_kind, 'bindings.ArrayDataHeader.kHeaderSize + bindings.kPointerSize * i'~level, 0, level+1)|indent(4)}}
|
| }
|
| }
|
| {%- elif kind|is_map_kind %}
|
| @@ -23,8 +23,8 @@ if ({{variable}} == null) {
|
| int size{{level}} = {{variable}}.length;
|
| var keys{{level}} = {{variable}}.keys.toList();
|
| var values{{level}} = {{variable}}.values.toList();
|
| - {{encode('keys'~level, kind.key_kind|array, 'bindings.DataHeader.kHeaderSize', 0, level+1, False)|indent(2)}}
|
| - {{encode('values'~level, kind.value_kind|array, 'bindings.DataHeader.kHeaderSize + bindings.kPointerSize', 0, level+1, False)|indent(2)}}
|
| + {{encode('keys'~level, kind.key_kind|array, 'bindings.ArrayDataHeader.kHeaderSize', 0, level+1, False)|indent(2)}}
|
| + {{encode('values'~level, kind.value_kind|array, 'bindings.ArrayDataHeader.kHeaderSize + bindings.kPointerSize', 0, level+1, False)|indent(2)}}
|
| }
|
| {%- else %}
|
| encoder{{level}}.{{kind|encode_method(variable, offset, bit)}};
|
| @@ -50,18 +50,18 @@ if (decoder{{level+1}} == null) {
|
| List<{{kind.key_kind|dart_type}}> keys{{level}};
|
| List<{{kind.value_kind|dart_type}}> values{{level}};
|
| {
|
| - {{decode('keys'~level, kind.key_kind|array, 'bindings.DataHeader.kHeaderSize', 0, level+1)|indent(4)}}
|
| + {{decode('keys'~level, kind.key_kind|array, 'bindings.ArrayDataHeader.kHeaderSize', 0, level+1)|indent(4)}}
|
| }
|
| {
|
| - {{decode('values'~level, kind.value_kind|array('keys'~level~'.length'), 'bindings.DataHeader.kHeaderSize + bindings.kPointerSize', 0, level+1)|indent(4)}}
|
| + {{decode('values'~level, kind.value_kind|array('keys'~level~'.length'), 'bindings.ArrayDataHeader.kHeaderSize + bindings.kPointerSize', 0, level+1)|indent(4)}}
|
| }
|
| {{variable}} = new Map<{{kind.key_kind|dart_type}}, {{kind.value_kind|dart_type}}>.fromIterables(
|
| keys{{level}}, values{{level}});
|
| {%- else %}
|
| var si{{level+1}} = decoder{{level+1}}.decodeDataHeaderForPointerArray({{kind|array_expected_length}});
|
| - {{variable}} = new {{kind|dart_type}}(si{{level+1}}.numFields);
|
| - for (int i{{level+1}} = 0; i{{level+1}} < si{{level+1}}.numFields; ++i{{level+1}}) {
|
| - {{decode(variable~'[i'~(level+1)~']', kind.kind, 'bindings.DataHeader.kHeaderSize + bindings.kPointerSize * i'~(level+1), 0, level+1)|indent(4)}}
|
| + {{variable}} = new {{kind|dart_type}}(si{{level+1}}.numElements);
|
| + for (int i{{level+1}} = 0; i{{level+1}} < si{{level+1}}.numElements; ++i{{level+1}}) {
|
| + {{decode(variable~'[i'~(level+1)~']', kind.kind, 'bindings.ArrayDataHeader.kHeaderSize + bindings.kPointerSize * i'~(level+1), 0, level+1)|indent(4)}}
|
| }
|
| {%- endif %}
|
| }
|
| @@ -75,8 +75,8 @@ if (decoder{{level+1}} == null) {
|
| {%- macro struct_def(struct) %}
|
| class {{struct|name}} extends bindings.Struct {
|
| static const int kStructSize = {{struct.versions[-1].num_bytes}};
|
| - static const bindings.DataHeader kDefaultStructInfo =
|
| - const bindings.DataHeader(kStructSize, {{struct.packed.packed_fields|length}});
|
| + static const bindings.StructDataHeader kDefaultStructInfo =
|
| + const bindings.StructDataHeader(kStructSize, {{struct.versions[-1].version}});
|
|
|
| {#--- Enums #}
|
| {%- from "enum_definition.tmpl" import enum_def %}
|
| @@ -107,15 +107,15 @@ class {{struct|name}} extends bindings.Struct {
|
| }
|
| {{struct|name}} result = new {{struct|name}}();
|
|
|
| - var mainDataHeader = decoder0.decodeDataHeader();
|
| + var mainDataHeader = decoder0.decodeStructDataHeader();
|
| if ((mainDataHeader.size < kStructSize) ||
|
| - (mainDataHeader.numFields < {{struct.packed.packed_fields|length}})) {
|
| + (mainDataHeader.version < {{struct.versions[-1].version}})) {
|
| throw new bindings.MojoCodecError('Malformed header');
|
| }
|
|
|
| {%- for byte in struct.bytes %}
|
| {%- for packed_field in byte.packed_fields %}
|
| - if (mainDataHeader.numFields > {{packed_field.ordinal}}) {
|
| + {
|
| {{decode('result.' ~ packed_field.field|name, packed_field.field.kind, 8+packed_field.offset, packed_field.bit)|indent(6)}}
|
| }
|
| {%- endfor %}
|
| @@ -125,9 +125,9 @@ class {{struct|name}} extends bindings.Struct {
|
|
|
| void encode(bindings.Encoder encoder) {
|
| {%- if not struct.bytes %}
|
| - encoder.getEncoderAtOffset(kDefaultStructInfo);
|
| + encoder.getStructEncoderAtOffset(kDefaultStructInfo);
|
| {%- else %}
|
| - var encoder0 = encoder.getEncoderAtOffset(kDefaultStructInfo);
|
| + var encoder0 = encoder.getStructEncoderAtOffset(kDefaultStructInfo);
|
| {%- endif %}
|
| {%- for byte in struct.bytes %}
|
| {%- for packed_field in byte.packed_fields %}
|
|
|