| OLD | NEW |
| 1 {% from "constant_definition.tmpl" import constant_def %} | 1 {% from "constant_definition.tmpl" import constant_def %} |
| 2 {% from "enum_definition.tmpl" import enum_def %} | 2 {% from "enum_definition.tmpl" import enum_def %} |
| 3 | 3 |
| 4 {% macro encode(variable, kind, offset, bit, level=0) %} | 4 {% macro encode(variable, kind, offset, bit, level=0, check_for_null=True) %} |
| 5 {% if kind|is_pointer_array_kind %} | 5 {% if kind|is_pointer_array_kind %} |
| 6 {% set sub_kind = kind.kind %} | 6 {% set sub_kind = kind.kind %} |
| 7 {% if check_for_null %} |
| 7 if ({{variable}} == null) { | 8 if ({{variable}} == null) { |
| 8 encoder{{level}}.encodeNullPointer({{offset}}, {{kind|is_nullable_kind|java_
true_false}}); | 9 encoder{{level}}.encodeNullPointer({{offset}}, {{kind|is_nullable_kind|java_
true_false}}); |
| 9 } else { | 10 } else { |
| 11 {% else %} |
| 12 { |
| 13 {% endif %} |
| 10 org.chromium.mojo.bindings.Encoder encoder{{level + 1}} = encoder{{level}}.e
ncodePointerArray({{variable}}.length, {{offset}}, {{kind|array_expected_length}
}); | 14 org.chromium.mojo.bindings.Encoder encoder{{level + 1}} = encoder{{level}}.e
ncodePointerArray({{variable}}.length, {{offset}}, {{kind|array_expected_length}
}); |
| 11 for (int i{{level}} = 0; i{{level}} < {{variable}}.length; ++i{{level}}) { | 15 for (int i{{level}} = 0; i{{level}} < {{variable}}.length; ++i{{level}}) { |
| 12 {{encode(variable~'[i'~level~']', sub_kind, 'DataHeader.HEADER_SIZE + or
g.chromium.mojo.bindings.BindingsHelper.POINTER_SIZE * i'~level, 0, level+1)|ind
ent(8)}} | 16 {{encode(variable~'[i'~level~']', sub_kind, 'DataHeader.HEADER_SIZE + or
g.chromium.mojo.bindings.BindingsHelper.POINTER_SIZE * i'~level, 0, level+1)|ind
ent(8)}} |
| 13 } | 17 } |
| 14 } | 18 } |
| 15 {% elif kind|is_map_kind %} | 19 {% elif kind|is_map_kind %} |
| 16 if ({{variable}} == null) { | 20 if ({{variable}} == null) { |
| 17 encoder{{level}}.encodeNullPointer({{offset}}, {{kind|is_nullable_kind|java_
true_false}}); | 21 encoder{{level}}.encodeNullPointer({{offset}}, {{kind|is_nullable_kind|java_
true_false}}); |
| 18 } else { | 22 } else { |
| 19 org.chromium.mojo.bindings.Encoder encoder{{level + 1}} = encoder{{level}}.e
ncoderForMap({{offset}}); | 23 org.chromium.mojo.bindings.Encoder encoder{{level + 1}} = encoder{{level}}.e
ncoderForMap({{offset}}); |
| 20 int size{{level}} = {{variable}}.size(); | 24 int size{{level}} = {{variable}}.size(); |
| 21 {{kind.key_kind|java_type}}[] keys{{level}} = {{kind.key_kind|array|new_arra
y('size'~level)}}; | 25 {{kind.key_kind|java_type}}[] keys{{level}} = {{kind.key_kind|array|new_arra
y('size'~level)}}; |
| 22 {{kind.value_kind|java_type}}[] values{{level}} = {{kind.value_kind|array|ne
w_array('size'~level)}}; | 26 {{kind.value_kind|java_type}}[] values{{level}} = {{kind.value_kind|array|ne
w_array('size'~level)}}; |
| 23 int index{{level}} = 0; | 27 int index{{level}} = 0; |
| 24 for (java.util.Map.Entry<{{kind.key_kind|java_type(true)}}, {{kind.value_kin
d|java_type(true)}}> entry{{level}} : {{variable}}.entrySet()) { | 28 for (java.util.Map.Entry<{{kind.key_kind|java_type(true)}}, {{kind.value_kin
d|java_type(true)}}> entry{{level}} : {{variable}}.entrySet()) { |
| 25 keys{{level}}[index{{level}}] = entry{{level}}.getKey(); | 29 keys{{level}}[index{{level}}] = entry{{level}}.getKey(); |
| 26 values{{level}}[index{{level}}] = entry{{level}}.getValue(); | 30 values{{level}}[index{{level}}] = entry{{level}}.getValue(); |
| 27 } | 31 } |
| 28 {{encode('keys'~level, kind.key_kind|array, 'DataHeader.HEADER_SIZE', 0, lev
el+1)|indent(4)}} | 32 {{encode('keys'~level, kind.key_kind|array, 'DataHeader.HEADER_SIZE', 0, lev
el+1, False)|indent(4)}} |
| 29 {{encode('values'~level, kind.value_kind|array, 'DataHeader.HEADER_SIZE + or
g.chromium.mojo.bindings.BindingsHelper.POINTER_SIZE', 0, level+1)|indent(4)}} | 33 {{encode('values'~level, kind.value_kind|array, 'DataHeader.HEADER_SIZE + or
g.chromium.mojo.bindings.BindingsHelper.POINTER_SIZE', 0, level+1, False)|indent
(4)}} |
| 30 } | 34 } |
| 31 {% else %} | 35 {% else %} |
| 32 encoder{{level}}.{{kind|encode_method(variable, offset, bit)}}; | 36 encoder{{level}}.{{kind|encode_method(variable, offset, bit)}}; |
| 33 {% endif %} | 37 {% endif %} |
| 34 {% endmacro %} | 38 {% endmacro %} |
| 35 | 39 |
| 36 {% macro decode(variable, kind, offset, bit, level=0) %} | 40 {% macro decode(variable, kind, offset, bit, level=0) %} |
| 37 {% if kind|is_struct_kind or kind|is_pointer_array_kind or kind|is_map_kind %} | 41 {% if kind|is_struct_kind or kind|is_pointer_array_kind or kind|is_map_kind %} |
| 38 org.chromium.mojo.bindings.Decoder decoder{{level+1}} = decoder{{level}}.readPoi
nter({{offset}}, {{kind|is_nullable_kind|java_true_false}}); | 42 org.chromium.mojo.bindings.Decoder decoder{{level+1}} = decoder{{level}}.readPoi
nter({{offset}}, {{kind|is_nullable_kind|java_true_false}}); |
| 39 {% if kind|is_struct_kind %} | 43 {% if kind|is_struct_kind %} |
| 40 {{variable}} = {{kind|java_type}}.decode(decoder{{level+1}}); | 44 {{variable}} = {{kind|java_type}}.decode(decoder{{level+1}}); |
| 41 {% else %}{# kind|is_pointer_array_kind or is_map_kind #} | 45 {% else %}{# kind|is_pointer_array_kind or is_map_kind #} |
| 46 {% if kind|is_nullable_kind %} |
| 42 if (decoder{{level+1}} == null) { | 47 if (decoder{{level+1}} == null) { |
| 43 {{variable}} = null; | 48 {{variable}} = null; |
| 44 } else { | 49 } else { |
| 50 {% else %} |
| 51 { |
| 52 {% endif %} |
| 45 {% if kind|is_map_kind %} | 53 {% if kind|is_map_kind %} |
| 46 decoder{{level+1}}.readDataHeaderForMap(); | 54 decoder{{level+1}}.readDataHeaderForMap(); |
| 47 {{kind.key_kind|java_type}}[] keys{{level}}; | 55 {{kind.key_kind|java_type}}[] keys{{level}}; |
| 48 {{kind.value_kind|java_type}}[] values{{level}}; | 56 {{kind.value_kind|java_type}}[] values{{level}}; |
| 49 { | 57 { |
| 50 {{decode('keys'~level, kind.key_kind|array, 'DataHeader.HEADER_SIZE', 0,
level+1)|indent(8)}} | 58 {{decode('keys'~level, kind.key_kind|array, 'DataHeader.HEADER_SIZE', 0,
level+1)|indent(8)}} |
| 51 } | 59 } |
| 52 { | 60 { |
| 53 {{decode('values'~level, kind.value_kind|array('keys'~level~'.length'),
'DataHeader.HEADER_SIZE + org.chromium.mojo.bindings.BindingsHelper.POINTER_SIZE
', 0, level+1)|indent(8)}} | 61 {{decode('values'~level, kind.value_kind|array('keys'~level~'.length'),
'DataHeader.HEADER_SIZE + org.chromium.mojo.bindings.BindingsHelper.POINTER_SIZE
', 0, level+1)|indent(8)}} |
| 54 } | 62 } |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 133 org.chromium.mojo.bindings.Encoder encoder0 = encoder.getEncoderAtDataOf
fset(DEFAULT_STRUCT_INFO); | 141 org.chromium.mojo.bindings.Encoder encoder0 = encoder.getEncoderAtDataOf
fset(DEFAULT_STRUCT_INFO); |
| 134 {% endif %} | 142 {% endif %} |
| 135 {% for byte in struct.bytes %} | 143 {% for byte in struct.bytes %} |
| 136 {% for packed_field in byte.packed_fields %} | 144 {% for packed_field in byte.packed_fields %} |
| 137 {{encode(packed_field.field|name, packed_field.field.kind, 8+packed_fiel
d.offset, packed_field.bit)|indent(8)}} | 145 {{encode(packed_field.field|name, packed_field.field.kind, 8+packed_fiel
d.offset, packed_field.bit)|indent(8)}} |
| 138 {% endfor %} | 146 {% endfor %} |
| 139 {% endfor %} | 147 {% endfor %} |
| 140 } | 148 } |
| 141 } | 149 } |
| 142 {% endmacro %} | 150 {% endmacro %} |
| OLD | NEW |