| Index: mojo/public/tools/bindings/generators/cpp_templates/struct_serialization_definition.tmpl
|
| diff --git a/mojo/public/tools/bindings/generators/cpp_templates/struct_serialization_definition.tmpl b/mojo/public/tools/bindings/generators/cpp_templates/struct_serialization_definition.tmpl
|
| index f48cca72fb45734058cf6eda9554dc674c2d671a..f81bbb44e8c51d260824eb19804939e3c31790e2 100644
|
| --- a/mojo/public/tools/bindings/generators/cpp_templates/struct_serialization_definition.tmpl
|
| +++ b/mojo/public/tools/bindings/generators/cpp_templates/struct_serialization_definition.tmpl
|
| @@ -15,11 +15,30 @@ void Serialize_({{struct.name}}Ptr input, mojo::internal::Buffer* buf,
|
| internal::{{struct.name}}_Data::New(buf);
|
| {%- for pf in struct.packed.packed_fields %}
|
| {%- if pf.field.kind|is_object_kind %}
|
| +{%- if pf.field.kind|is_any_array_kind %}
|
| + mojo::SerializeArray_<{{pf.field.kind|get_array_validate_params|indent(26)}}>(
|
| + mojo::internal::Forward(input->{{pf.field.name}}), buf, &result->{{pf.field.name}}.ptr);
|
| +{%- else %}
|
| Serialize_(mojo::internal::Forward(input->{{pf.field.name}}), buf, &result->{{pf.field.name}}.ptr);
|
| -{%- elif pf.field.kind|is_interface_kind %}
|
| - result->{{pf.field.name}} = input->{{pf.field.name}}.PassMessagePipe().release();
|
| +{%- endif %}
|
| +{%- if not pf.field.kind|is_nullable_kind %}
|
| + MOJO_INTERNAL_DLOG_SERIALIZATION_WARNING(
|
| + mojo::internal::IsNonNullableValidationEnabled() &&
|
| + !result->{{pf.field.name}}.ptr,
|
| + mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER);
|
| +{%- endif %}
|
| {%- elif pf.field.kind|is_any_handle_kind %}
|
| +{%- if pf.field.kind|is_interface_kind %}
|
| + result->{{pf.field.name}} = input->{{pf.field.name}}.PassMessagePipe().release();
|
| +{%- else %}
|
| result->{{pf.field.name}} = input->{{pf.field.name}}.release();
|
| +{%- endif %}
|
| +{%- if not pf.field.kind|is_nullable_kind %}
|
| + MOJO_INTERNAL_DLOG_SERIALIZATION_WARNING(
|
| + mojo::internal::IsNonNullableValidationEnabled() &&
|
| + !result->{{pf.field.name}}.is_valid(),
|
| + mojo::internal::VALIDATION_ERROR_UNEXPECTED_INVALID_HANDLE);
|
| +{%- endif %}
|
| {%- else %}
|
| result->{{pf.field.name}} = input->{{pf.field.name}};
|
| {%- endif %}
|
|
|