| OLD | NEW |
| 1 {%- import "validation_macros.tmpl" as validation_macros %} | 1 {%- import "validation_macros.tmpl" as validation_macros %} |
| 2 {%- set class_name = union.name ~ "_Data" %} | 2 {%- set class_name = union.name ~ "_Data" %} |
| 3 {%- set enum_name = union.name ~ "_Tag" -%} | 3 {%- set enum_name = union.name ~ "_Tag" -%} |
| 4 | 4 |
| 5 // static | 5 // static |
| 6 {{class_name}}* {{class_name}}::New(mojo::internal::Buffer* buf) { | 6 {{class_name}}* {{class_name}}::New(mojo::internal::Buffer* buf) { |
| 7 return new (buf->Allocate(sizeof({{class_name}}))) {{class_name}}(); | 7 return new (buf->Allocate(sizeof({{class_name}}))) {{class_name}}(); |
| 8 } | 8 } |
| 9 | 9 |
| 10 // static | 10 // static |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 | 22 |
| 23 // If the union is inlined in another structure its memory was already claimed
. | 23 // If the union is inlined in another structure its memory was already claimed
. |
| 24 // This ONLY applies to the union itself, NOT anything which the union points | 24 // This ONLY applies to the union itself, NOT anything which the union points |
| 25 // to. | 25 // to. |
| 26 if (!inlined && !bounds_checker->ClaimMemory(data, sizeof({{class_name}}))) { | 26 if (!inlined && !bounds_checker->ClaimMemory(data, sizeof({{class_name}}))) { |
| 27 ReportValidationError( | 27 ReportValidationError( |
| 28 mojo::internal::VALIDATION_ERROR_ILLEGAL_MEMORY_RANGE); | 28 mojo::internal::VALIDATION_ERROR_ILLEGAL_MEMORY_RANGE); |
| 29 return false; | 29 return false; |
| 30 } | 30 } |
| 31 const {{class_name}}* object = static_cast<const {{class_name}}*>(data); | 31 const {{class_name}}* object = static_cast<const {{class_name}}*>(data); |
| 32 MOJO_ALLOW_UNUSED_LOCAL(object); | 32 ALLOW_UNUSED_LOCAL(object); |
| 33 | 33 |
| 34 switch (object->tag) { | 34 switch (object->tag) { |
| 35 {% for field in union.fields %} | 35 {% for field in union.fields %} |
| 36 case {{enum_name}}::{{field.name|upper}}: { | 36 case {{enum_name}}::{{field.name|upper}}: { |
| 37 {{ validation_macros.validate_union_field(field, union)|indent(6) }} | 37 {{ validation_macros.validate_union_field(field, union)|indent(6) }} |
| 38 } | 38 } |
| 39 {%- endfor %} | 39 {%- endfor %} |
| 40 default: { | 40 default: { |
| 41 ReportValidationError( | 41 ReportValidationError( |
| 42 mojo::internal::VALIDATION_ERROR_UNKNOWN_UNION_TAG, | 42 mojo::internal::VALIDATION_ERROR_UNKNOWN_UNION_TAG, |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 87 {%- elif field.kind|is_interface_kind %} | 87 {%- elif field.kind|is_interface_kind %} |
| 88 mojo::internal::DecodeHandle( | 88 mojo::internal::DecodeHandle( |
| 89 reinterpret_cast<mojo::internal::Interface_Data*>( | 89 reinterpret_cast<mojo::internal::Interface_Data*>( |
| 90 &data.f_{{field.name}}), handles); | 90 &data.f_{{field.name}}), handles); |
| 91 {%- endif %} | 91 {%- endif %} |
| 92 return; | 92 return; |
| 93 } | 93 } |
| 94 {%- endfor %} | 94 {%- endfor %} |
| 95 } | 95 } |
| 96 } | 96 } |
| OLD | NEW |