OLD | NEW |
| 1 {%- macro validate(struct, class_name) %} |
| 2 if (!data) |
| 3 return true; |
| 4 |
| 5 if (!ValidateStructHeader( |
| 6 data, sizeof({{class_name}}), |
| 7 {{struct.packed.packed_fields|length}}, bounds_checker)) { |
| 8 return false; |
| 9 } |
| 10 |
| 11 const {{class_name}}* MOJO_ALLOW_UNUSED object = |
| 12 static_cast<const {{class_name}}*>(data); |
| 13 |
| 14 {%- for packed_field in struct.packed.packed_fields |
| 15 if packed_field.field.kind|is_object_kind %} |
| 16 {%- set wrapper_type = packed_field.field.kind|cpp_wrapper_type %} |
| 17 {%- set name = packed_field.field.name %} |
| 18 if (!mojo::internal::ValidateEncodedPointer(&object->{{name}}_.offset) || |
| 19 !{{wrapper_type}}::Data::Validate( |
| 20 mojo::internal::DecodePointerRaw(&object->{{name}}_.offset), |
| 21 bounds_checker)) { |
| 22 return false; |
| 23 } |
| 24 {%- endfor %} |
| 25 {%- for packed_field in struct.packed.packed_fields |
| 26 if packed_field.field.kind|is_handle_kind %} |
| 27 {%- set name = packed_field.field.name %} |
| 28 if (!bounds_checker->ClaimHandle(object->{{name}}_)) |
| 29 return false; |
| 30 {%- endfor %} |
| 31 |
| 32 return true; |
| 33 {%- endmacro %} |
| 34 |
1 {%- macro setters(struct) %} | 35 {%- macro setters(struct) %} |
2 {% for packed_field in struct.packed.packed_fields %} | 36 {% for packed_field in struct.packed.packed_fields %} |
3 {%- set type = packed_field.field.kind|cpp_type %} | 37 {%- set type = packed_field.field.kind|cpp_type %} |
4 {%- set name = packed_field.field.name %} | 38 {%- set name = packed_field.field.name %} |
5 {%- if packed_field.field.kind|is_object_kind %} | 39 {%- if packed_field.field.kind|is_object_kind %} |
6 void set_{{name}}({{type}} {{name}}) { {{name}}_.ptr = {{name}}; } | 40 void set_{{name}}({{type}} {{name}}) { {{name}}_.ptr = {{name}}; } |
7 {%- else %} | 41 {%- else %} |
8 void set_{{name}}({{type}} {{name}}) { {{name}}_ = {{name}}; } | 42 void set_{{name}}({{type}} {{name}}) { {{name}}_ = {{name}}; } |
9 {%- endif %} | 43 {%- endif %} |
10 {%- endfor %} | 44 {%- endfor %} |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
74 {%- for pf in struct.packed.packed_fields if pf.field.kind|is_object_kind -%} | 108 {%- for pf in struct.packed.packed_fields if pf.field.kind|is_object_kind -%} |
75 if (!mojo::internal::Decode(&{{pf.field.name}}_, message)) | 109 if (!mojo::internal::Decode(&{{pf.field.name}}_, message)) |
76 return false; | 110 return false; |
77 {% endfor %} | 111 {% endfor %} |
78 {%- for pf in struct.packed.packed_fields if pf.field.kind|is_handle_kind -%} | 112 {%- for pf in struct.packed.packed_fields if pf.field.kind|is_handle_kind -%} |
79 if (!mojo::internal::DecodeHandle(&{{pf.field.name}}_, | 113 if (!mojo::internal::DecodeHandle(&{{pf.field.name}}_, |
80 message->mutable_handles())) | 114 message->mutable_handles())) |
81 return false; | 115 return false; |
82 {% endfor %} | 116 {% endfor %} |
83 {%- endmacro -%} | 117 {%- endmacro -%} |
OLD | NEW |