OLD | NEW |
1 size_t GetSerializedSize_(const {{struct.name}}Ptr& input) { | 1 size_t GetSerializedSize_(const {{struct.name}}Ptr& input) { |
2 if (!input) | 2 if (!input) |
3 return 0; | 3 return 0; |
4 size_t size = sizeof(internal::{{struct.name}}_Data); | 4 size_t size = sizeof(internal::{{struct.name}}_Data); |
5 {%- for pf in struct.packed.packed_fields if pf.field.kind|is_object_kind %} | 5 {%- for pf in struct.packed.packed_fields if pf.field.kind|is_object_kind %} |
6 size += GetSerializedSize_(input->{{pf.field.name}}); | 6 size += GetSerializedSize_(input->{{pf.field.name}}); |
7 {%- endfor %} | 7 {%- endfor %} |
8 return size; | 8 return size; |
9 } | 9 } |
10 | 10 |
11 void Serialize_({{struct.name}}Ptr input, mojo::internal::Buffer* buf, | 11 void Serialize_({{struct.name}}Ptr input, mojo::internal::Buffer* buf, |
12 internal::{{struct.name}}_Data** output) { | 12 internal::{{struct.name}}_Data** output) { |
13 if (input) { | 13 if (input) { |
14 internal::{{struct.name}}_Data* result = | 14 internal::{{struct.name}}_Data* result = |
15 internal::{{struct.name}}_Data::New(buf); | 15 internal::{{struct.name}}_Data::New(buf); |
16 {%- for pf in struct.packed.packed_fields %} | 16 {%- for pf in struct.packed.packed_fields %} |
17 {%- if pf.field.kind|is_object_kind %} | 17 {%- if pf.field.kind|is_object_kind %} |
18 {%- if pf.field.kind|is_any_array_kind %} | 18 {%- if pf.field.kind|is_any_array_kind %} |
19 mojo::SerializeArray_<{{pf.field.kind|get_array_validate_params|indent(26)}}
>( | 19 mojo::SerializeArray_<{{pf.field.kind|get_array_validate_params|indent(26)}}
>( |
20 mojo::internal::Forward(input->{{pf.field.name}}), buf, &result->{{pf.fi
eld.name}}.ptr); | 20 mojo::internal::Forward(input->{{pf.field.name}}), buf, &result->{{pf.fi
eld.name}}.ptr); |
21 {%- else %} | 21 {%- else %} |
22 Serialize_(mojo::internal::Forward(input->{{pf.field.name}}), buf, &result->
{{pf.field.name}}.ptr); | 22 Serialize_(mojo::internal::Forward(input->{{pf.field.name}}), buf, &result->
{{pf.field.name}}.ptr); |
23 {%- endif %} | 23 {%- endif %} |
24 {%- if not pf.field.kind|is_nullable_kind %} | 24 {%- if not pf.field.kind|is_nullable_kind %} |
25 MOJO_INTERNAL_DLOG_SERIALIZATION_WARNING( | 25 MOJO_INTERNAL_DLOG_SERIALIZATION_WARNING( |
26 mojo::internal::IsNonNullableValidationEnabled() && | 26 !result->{{pf.field.name}}.ptr, |
27 !result->{{pf.field.name}}.ptr, | |
28 mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER); | 27 mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER); |
29 {%- endif %} | 28 {%- endif %} |
30 {%- elif pf.field.kind|is_any_handle_kind %} | 29 {%- elif pf.field.kind|is_any_handle_kind %} |
31 {%- if pf.field.kind|is_interface_kind %} | 30 {%- if pf.field.kind|is_interface_kind %} |
32 result->{{pf.field.name}} = input->{{pf.field.name}}.PassMessagePipe().relea
se(); | 31 result->{{pf.field.name}} = input->{{pf.field.name}}.PassMessagePipe().relea
se(); |
33 {%- else %} | 32 {%- else %} |
34 result->{{pf.field.name}} = input->{{pf.field.name}}.release(); | 33 result->{{pf.field.name}} = input->{{pf.field.name}}.release(); |
35 {%- endif %} | 34 {%- endif %} |
36 {%- if not pf.field.kind|is_nullable_kind %} | 35 {%- if not pf.field.kind|is_nullable_kind %} |
37 MOJO_INTERNAL_DLOG_SERIALIZATION_WARNING( | 36 MOJO_INTERNAL_DLOG_SERIALIZATION_WARNING( |
38 mojo::internal::IsNonNullableValidationEnabled() && | 37 !result->{{pf.field.name}}.is_valid(), |
39 !result->{{pf.field.name}}.is_valid(), | |
40 mojo::internal::VALIDATION_ERROR_UNEXPECTED_INVALID_HANDLE); | 38 mojo::internal::VALIDATION_ERROR_UNEXPECTED_INVALID_HANDLE); |
41 {%- endif %} | 39 {%- endif %} |
42 {%- else %} | 40 {%- else %} |
43 result->{{pf.field.name}} = input->{{pf.field.name}}; | 41 result->{{pf.field.name}} = input->{{pf.field.name}}; |
44 {%- endif %} | 42 {%- endif %} |
45 {%- endfor %} | 43 {%- endfor %} |
46 *output = result; | 44 *output = result; |
47 } else { | 45 } else { |
48 *output = NULL; | 46 *output = NULL; |
49 } | 47 } |
(...skipping 16 matching lines...) Expand all Loading... |
66 input->{{pf.field.name}}); | 64 input->{{pf.field.name}}); |
67 {%- else %} | 65 {%- else %} |
68 result->{{pf.field.name}} = input->{{pf.field.name}}; | 66 result->{{pf.field.name}} = input->{{pf.field.name}}; |
69 {%- endif %} | 67 {%- endif %} |
70 {%- endfor %} | 68 {%- endfor %} |
71 *output = result.Pass(); | 69 *output = result.Pass(); |
72 } else { | 70 } else { |
73 output->reset(); | 71 output->reset(); |
74 } | 72 } |
75 } | 73 } |
OLD | NEW |