| OLD | NEW |
| 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 validation_context)) { |
| 12 return false; | 13 return false; |
| 13 } | 14 } |
| 14 {%- else %} | 15 {%- else %} |
| 15 if (!mojo::internal::ValidatePointerNonNullable( | 16 if (!mojo::internal::ValidatePointerNonNullable( |
| 16 {{field_expr}}, "null {{name}} field in {{object_name}}")) { | 17 {{field_expr}}, "null {{name}} field in {{object_name}}", |
| 18 validation_context)) { |
| 17 return false; | 19 return false; |
| 18 } | 20 } |
| 19 {%- endif %} | 21 {%- endif %} |
| 20 {%- endif %} | 22 {%- endif %} |
| 21 {%- if kind|is_array_kind or kind|is_string_kind %} | 23 {%- if kind|is_array_kind or kind|is_string_kind %} |
| 22 const mojo::internal::ContainerValidateParams {{name}}_validate_params( | 24 const mojo::internal::ContainerValidateParams {{name}}_validate_params( |
| 23 {{kind|get_container_validate_params_ctor_args|indent(6)}}); | 25 {{kind|get_container_validate_params_ctor_args|indent(6)}}); |
| 24 if (!mojo::internal::ValidateArray({{field_expr}}, bounds_checker, | 26 if (!mojo::internal::ValidateArray({{field_expr}}, validation_context, |
| 25 &{{name}}_validate_params)) { | 27 &{{name}}_validate_params)) { |
| 26 return false; | 28 return false; |
| 27 } | 29 } |
| 28 {%- elif kind|is_map_kind %} | 30 {%- elif kind|is_map_kind %} |
| 29 const mojo::internal::ContainerValidateParams {{name}}_validate_params( | 31 const mojo::internal::ContainerValidateParams {{name}}_validate_params( |
| 30 {{kind|get_container_validate_params_ctor_args|indent(6)}}); | 32 {{kind|get_container_validate_params_ctor_args|indent(6)}}); |
| 31 if (!mojo::internal::ValidateMap({{field_expr}}, bounds_checker, | 33 if (!mojo::internal::ValidateMap({{field_expr}}, validation_context, |
| 32 &{{name}}_validate_params)) { | 34 &{{name}}_validate_params)) { |
| 33 return false; | 35 return false; |
| 34 } | 36 } |
| 35 {%- elif kind|is_struct_kind %} | 37 {%- elif kind|is_struct_kind %} |
| 36 if (!mojo::internal::ValidateStruct({{field_expr}}, bounds_checker)) | 38 if (!mojo::internal::ValidateStruct({{field_expr}}, validation_context)) |
| 37 return false; | 39 return false; |
| 38 {%- elif kind|is_union_kind %} | 40 {%- elif kind|is_union_kind %} |
| 39 {%- if union_is_inlined %} | 41 {%- if union_is_inlined %} |
| 40 if (!mojo::internal::ValidateInlinedUnion({{field_expr}}, bounds_checker)) | 42 if (!mojo::internal::ValidateInlinedUnion({{field_expr}}, validation_context)) |
| 41 return false; | 43 return false; |
| 42 {%- else %} | 44 {%- else %} |
| 43 if (!mojo::internal::ValidateNonInlinedUnion({{field_expr}}, bounds_checker)) | 45 if (!mojo::internal::ValidateNonInlinedUnion({{field_expr}}, |
| 46 validation_context)) |
| 44 return false; | 47 return false; |
| 45 {%- endif %} | 48 {%- endif %} |
| 46 {%- else %} | 49 {%- else %} |
| 47 #error Not reached! | 50 #error Not reached! |
| 48 {%- endif %} | 51 {%- endif %} |
| 49 {%- endmacro %} | 52 {%- endmacro %} |
| 50 | 53 |
| 51 {#- Validates the specified field, which is supposed to be a handle or contain a | 54 {#- Validates the specified field, which is supposed to be a handle or contain a |
| 52 handle (in the case of interfaces). | 55 handle (in the case of interfaces). |
| 53 This macro is expanded by the Validate() method. #} | 56 This macro is expanded by the Validate() method. #} |
| 54 {%- macro validate_handle(field, field_expr, object_name) %} | 57 {%- macro validate_handle(field, field_expr, object_name) %} |
| 55 {%- set name = field.name %} | 58 {%- set name = field.name %} |
| 56 {%- set kind = field.kind %} | 59 {%- set kind = field.kind %} |
| 57 {%- if kind|is_interface_kind %} | 60 {%- if kind|is_interface_kind %} |
| 58 const mojo::internal::Handle_Data {{name}}_handle = {{field_expr}}.handle; | 61 const mojo::internal::Handle_Data {{name}}_handle = {{field_expr}}.handle; |
| 59 {%- else %} | 62 {%- else %} |
| 60 const mojo::internal::Handle_Data {{name}}_handle = {{field_expr}}; | 63 const mojo::internal::Handle_Data {{name}}_handle = {{field_expr}}; |
| 61 {%- endif %} | 64 {%- endif %} |
| 62 {%- if not kind|is_nullable_kind %} | 65 {%- if not kind|is_nullable_kind %} |
| 63 if (!mojo::internal::ValidateHandleNonNullable( | 66 if (!mojo::internal::ValidateHandleNonNullable( |
| 64 {{name}}_handle, | 67 {{name}}_handle, |
| 65 "invalid {{name}} field in {{object_name}}")) { | 68 "invalid {{name}} field in {{object_name}}", validation_context)) { |
| 66 return false; | 69 return false; |
| 67 } | 70 } |
| 68 {%- endif %} | 71 {%- endif %} |
| 69 if (!mojo::internal::ValidateHandle({{name}}_handle, bounds_checker)) | 72 if (!mojo::internal::ValidateHandle({{name}}_handle, validation_context)) |
| 70 return false; | 73 return false; |
| 71 {%- endmacro %} | 74 {%- endmacro %} |
| 72 | 75 |
| 73 {#- Validates the specified field, which is supposed to be an associated | 76 {#- Validates the specified field, which is supposed to be an associated |
| 74 interface or an associated interface request. | 77 interface or an associated interface request. |
| 75 This macro is expanded by the Validate() method. #} | 78 This macro is expanded by the Validate() method. #} |
| 76 {%- macro validate_associated(field, field_expr, object_name) %} | 79 {%- macro validate_associated(field, field_expr, object_name) %} |
| 77 {%- set name = field.name %} | 80 {%- set name = field.name %} |
| 78 {%- set kind = field.kind %} | 81 {%- set kind = field.kind %} |
| 79 {%- if kind|is_associated_interface_kind %} | 82 {%- if kind|is_associated_interface_kind %} |
| 80 const mojo::internal::InterfaceId {{name}}_interface_id = | 83 const mojo::internal::InterfaceId {{name}}_interface_id = |
| 81 {{field_expr}}.interface_id; | 84 {{field_expr}}.interface_id; |
| 82 {%- else %} | 85 {%- else %} |
| 83 const mojo::internal::InterfaceId {{name}}_interface_id = {{field_expr}}; | 86 const mojo::internal::InterfaceId {{name}}_interface_id = {{field_expr}}; |
| 84 {%- endif %} | 87 {%- endif %} |
| 85 {%- if not kind|is_nullable_kind %} | 88 {%- if not kind|is_nullable_kind %} |
| 86 if (!mojo::internal::ValidateInterfaceIdNonNullable( | 89 if (!mojo::internal::ValidateInterfaceIdNonNullable( |
| 87 {{name}}_interface_id, | 90 {{name}}_interface_id, |
| 88 "invalid {{name}} field in {{object_name}}")) { | 91 "invalid {{name}} field in {{object_name}}", validation_context)) { |
| 89 return false; | 92 return false; |
| 90 } | 93 } |
| 91 {%- endif %} | 94 {%- endif %} |
| 92 if (!mojo::internal::ValidateAssociatedInterfaceId({{name}}_interface_id)) | 95 if (!mojo::internal::ValidateAssociatedInterfaceId({{name}}_interface_id, |
| 96 validation_context)) { |
| 93 return false; | 97 return false; |
| 98 } |
| 94 {%- endmacro %} | 99 {%- endmacro %} |
| 95 | 100 |
| 96 {#- Validates the specified field, which is supposed to be an enum. | 101 {#- Validates the specified field, which is supposed to be an enum. |
| 97 This macro is expanded by the Validate() method. #} | 102 This macro is expanded by the Validate() method. #} |
| 98 {%- macro validate_enum(field, field_expr) %} | 103 {%- macro validate_enum(field, field_expr) %} |
| 99 if (!{{field.kind|get_qualified_name_for_kind(internal=True)}}::Validate({{fie
ld_expr}})) | 104 if (!{{field.kind|get_qualified_name_for_kind(internal=True)}} |
| 105 ::Validate({{field_expr}}, validation_context)) |
| 100 return false; | 106 return false; |
| 101 {%- endmacro %} | 107 {%- endmacro %} |
| 102 | 108 |
| 103 {%- macro validate_field(field, field_expr, object_name, union_is_inlined) %} | 109 {%- macro validate_field(field, field_expr, object_name, union_is_inlined) %} |
| 104 {%- if field.kind|is_object_kind -%} | 110 {%- if field.kind|is_object_kind -%} |
| 105 {{validate_object(field, field_expr, object_name, union_is_inlined)}} | 111 {{validate_object(field, field_expr, object_name, union_is_inlined)}} |
| 106 {%- elif field.kind|is_any_handle_kind or field.kind|is_interface_kind -%} | 112 {%- elif field.kind|is_any_handle_kind or field.kind|is_interface_kind -%} |
| 107 {{validate_handle(field, field_expr, object_name)}} | 113 {{validate_handle(field, field_expr, object_name)}} |
| 108 {%- elif field.kind|is_associated_kind %} | 114 {%- elif field.kind|is_associated_kind %} |
| 109 {{validate_associated(field, field_expr, object_name)}} | 115 {{validate_associated(field, field_expr, object_name)}} |
| 110 {%- elif field.kind|is_enum_kind %} | 116 {%- elif field.kind|is_enum_kind %} |
| 111 {{validate_enum(field, field_expr)}} | 117 {{validate_enum(field, field_expr)}} |
| 112 {%- endif %} | 118 {%- endif %} |
| 113 {%- endmacro %} | 119 {%- endmacro %} |
| OLD | NEW |