| Index: mojo/public/tools/bindings/generators/js_templates/struct_definition.tmpl
|
| diff --git a/mojo/public/tools/bindings/generators/js_templates/struct_definition.tmpl b/mojo/public/tools/bindings/generators/js_templates/struct_definition.tmpl
|
| index ae1ccb079afc63819a9862ec795f04743362f059..e4fcc84b15dda9bbc4def344eb0440d6e4a6bbeb 100644
|
| --- a/mojo/public/tools/bindings/generators/js_templates/struct_definition.tmpl
|
| +++ b/mojo/public/tools/bindings/generators/js_templates/struct_definition.tmpl
|
| @@ -21,6 +21,42 @@
|
| {%- endfor %}
|
| };
|
|
|
| +{#--- Validation #}
|
| +
|
| + {{struct.name}}.validate = function(messageValidator, offset) {
|
| + var err;
|
| +
|
| + err = messageValidator.validateStructHeader(offset, {{struct.name}}.encodedSize, {{struct.packed.packed_fields|length}});
|
| + if (err !== validator.validationError.NONE)
|
| + return err;
|
| +{%- for packed_field in struct.packed.packed_fields %}
|
| +{%- set fieldName = packed_field.field.name %}
|
| +{%- if packed_field.field|is_string_pointer_field %}
|
| + // validate {{struct.name}}.{{fieldName}}
|
| + err = messageValidator.validateStringPointer({{packed_field|field_offset}})
|
| + if (err !== validator.validationError.NONE)
|
| + return err;
|
| +{%- elif packed_field.field|is_array_pointer_field %}
|
| + // validate {{struct.name}}.{{fieldName}}
|
| + err = messageValidator.validateArrayPointer({{packed_field|validate_array_params}});
|
| + if (err !== validator.validationError.NONE)
|
| + return err;
|
| +{%- elif packed_field.field|is_struct_pointer_field %}
|
| + // validate {{struct.name}}.{{fieldName}}
|
| + err = messageValidator.validateStructPointer({{packed_field|validate_struct_params}});
|
| + if (err !== validator.validationError.NONE)
|
| + return err;
|
| +{%- elif packed_field.field|is_handle_field %}
|
| + // validate {{struct.name}}.{{fieldName}}
|
| + err = messageValidator.validateHandle({{packed_field|field_offset}})
|
| + if (err !== validator.validationError.NONE)
|
| + return err;
|
| +{%- endif %}
|
| +{%- endfor %}
|
| +
|
| + return validator.validationError.NONE;
|
| + };
|
| +
|
| {#--- Encoding and decoding #}
|
|
|
| {{struct.name}}.encodedSize = codec.kStructHeaderSize + {{struct.packed|payload_size}};
|
|
|