Chromium Code Reviews| 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}}); |
|
yzshen1
2014/08/14 18:02:22
80 chars, please. (here and elsewhere)
hansmuller
2014/08/14 23:51:46
See earlier comments
|
| + if (err !== validator.validationError.NONE) |
| + return err; |
| +{%- for packed_field in struct.packed.packed_fields %} |
| +{%- set fieldName = packed_field.field.name %} |
|
yzshen1
2014/08/14 18:02:22
nit: I think the naming convention is field_name (
hansmuller
2014/08/14 23:51:46
Done.
|
| +{%- if packed_field.field|is_string_pointer_field %} |
| + // validate {{struct.name}}.{{fieldName}} |
| + err = messageValidator.validateStringPointer({{packed_field|field_offset}}) |
| + if (err !== validator.validationError.NONE) |
|
yzshen1
2014/08/14 18:02:22
I think line 37-38 can be moved outside of the {%i
hansmuller
2014/08/14 23:51:46
Yes! That makes this template much easier to read.
|
| + 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}}; |