Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(635)

Side by Side Diff: mojo/public/tools/bindings/generators/cpp_templates/validation_macros.tmpl

Issue 2036623002: Validate map keys in C++ Mojo bindings (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address review comments Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 {#- Validates the specified field, which is supposed to be an object 1 {#- Validates the specified field, which is supposed to be an object
2 (struct/array/string/map/union). If it is a union, |union_is_inlined| 2 (struct/array/string/map/union). If it is a union, |union_is_inlined|
3 indicates whether the union is inlined. (Nested unions are not inlined.) 3 indicates whether the union is inlined. (Nested unions are not inlined.)
4 This macro is expanded by the Validate() method. #} 4 This macro is expanded by the Validate() method. #}
5 {%- macro validate_object(field, field_expr, object_name, union_is_inlined) %} 5 {%- macro validate_object(field, field_expr, object_name, union_is_inlined) %}
6 {%- set name = field.name %} 6 {%- set name = field.name %}
7 {%- set kind = field.kind %} 7 {%- set kind = field.kind %}
8 {%- if not kind|is_nullable_kind %} 8 {%- if not kind|is_nullable_kind %}
9 {%- if kind|is_union_kind and union_is_inlined %} 9 {%- if kind|is_union_kind and union_is_inlined %}
10 if (!mojo::internal::ValidateInlinedUnionNonNullable( 10 if (!mojo::internal::ValidateInlinedUnionNonNullable(
11 {{field_expr}}, "null {{name}} field in {{object_name}}")) { 11 {{field_expr}}, "null {{name}} field in {{object_name}}")) {
12 return false; 12 return false;
13 } 13 }
14 {%- else %} 14 {%- else %}
15 if (!mojo::internal::ValidatePointerNonNullable( 15 if (!mojo::internal::ValidatePointerNonNullable(
16 {{field_expr}}, "null {{name}} field in {{object_name}}")) { 16 {{field_expr}}, "null {{name}} field in {{object_name}}")) {
17 return false; 17 return false;
18 } 18 }
19 {%- endif %} 19 {%- endif %}
20 {%- endif %} 20 {%- endif %}
21 {%- if kind|is_array_kind or kind|is_string_kind %} 21 {%- if kind|is_array_kind or kind|is_string_kind %}
22 const mojo::internal::ArrayValidateParams {{name}}_validate_params( 22 const mojo::internal::ArrayValidateParams {{name}}_validate_params(
23 {{kind|get_array_validate_params_ctor_args|indent(6)}}); 23 {{kind|get_array_validate_params_ctor_args|indent(6)}});
24 if (!mojo::internal::ValidateArray({{field_expr}}, bounds_checker, 24 if (!mojo::internal::ValidateArray({{field_expr}}, bounds_checker,
25 &{{name}}_validate_params)) { 25 &{{name}}_validate_params)) {
26 return false; 26 return false;
27 } 27 }
28 {%- elif kind|is_map_kind %} 28 {%- elif kind|is_map_kind %}
29 const mojo::internal::ArrayValidateParams {{name}}_validate_params( 29 const mojo::internal::ArrayValidateParams {{name}}_validate_params(
30 {{kind.value_kind|get_map_validate_params_ctor_args|indent(6)}}); 30 {{kind|get_array_validate_params_ctor_args|indent(6)}});
31 if (!mojo::internal::ValidateMap({{field_expr}}, bounds_checker, 31 if (!mojo::internal::ValidateMap({{field_expr}}, bounds_checker,
32 &{{name}}_validate_params)) { 32 &{{name}}_validate_params)) {
33 return false; 33 return false;
34 } 34 }
35 {%- elif kind|is_struct_kind %} 35 {%- elif kind|is_struct_kind %}
36 if (!mojo::internal::ValidateStruct({{field_expr}}, bounds_checker)) 36 if (!mojo::internal::ValidateStruct({{field_expr}}, bounds_checker))
37 return false; 37 return false;
38 {%- elif kind|is_union_kind %} 38 {%- elif kind|is_union_kind %}
39 {%- if union_is_inlined %} 39 {%- if union_is_inlined %}
40 if (!mojo::internal::ValidateInlinedUnion({{field_expr}}, bounds_checker)) 40 if (!mojo::internal::ValidateInlinedUnion({{field_expr}}, bounds_checker))
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 {%- if field.kind|is_object_kind -%} 104 {%- if field.kind|is_object_kind -%}
105 {{validate_object(field, field_expr, object_name, union_is_inlined)}} 105 {{validate_object(field, field_expr, object_name, union_is_inlined)}}
106 {%- elif field.kind|is_any_handle_kind or field.kind|is_interface_kind -%} 106 {%- elif field.kind|is_any_handle_kind or field.kind|is_interface_kind -%}
107 {{validate_handle(field, field_expr, object_name)}} 107 {{validate_handle(field, field_expr, object_name)}}
108 {%- elif field.kind|is_associated_kind %} 108 {%- elif field.kind|is_associated_kind %}
109 {{validate_associated(field, field_expr, object_name)}} 109 {{validate_associated(field, field_expr, object_name)}}
110 {%- elif field.kind|is_enum_kind %} 110 {%- elif field.kind|is_enum_kind %}
111 {{validate_enum(field, field_expr)}} 111 {{validate_enum(field, field_expr)}}
112 {%- endif %} 112 {%- endif %}
113 {%- endmacro %} 113 {%- endmacro %}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698