| 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 aec2afa93e5eb81446e335f5ae7c7751cd5ee976..5d8b944fb1a5a359b29ab36245dfa39b1cec890c 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
|
| @@ -16,6 +16,8 @@ void Serialize_({{struct.name}}Ptr input, mojo::internal::Buffer* buf,
|
| {%- for pf in struct.packed.packed_fields %}
|
| {%- if pf.field.kind|is_object_kind %}
|
| 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();
|
| {%- elif pf.field.kind|is_handle_kind %}
|
| result->{{pf.field.name}} = input->{{pf.field.name}}.release();
|
| {%- else %}
|
| @@ -35,6 +37,9 @@ void Deserialize_(internal::{{struct.name}}_Data* input,
|
| {%- for pf in struct.packed.packed_fields %}
|
| {%- if pf.field.kind|is_object_kind %}
|
| Deserialize_(input->{{pf.field.name}}.ptr, &result->{{pf.field.name}});
|
| +{%- elif pf.field.kind|is_interface_kind %}
|
| + if (input->{{pf.field.name}}.is_valid())
|
| + result->{{pf.field.name}}.Bind(mojo::MakeScopedHandle(mojo::internal::FetchAndReset(&input->{{pf.field.name}})));
|
| {%- elif pf.field.kind|is_handle_kind %}
|
| result->{{pf.field.name}}.reset(mojo::internal::FetchAndReset(&input->{{pf.field.name}}));
|
| {%- elif pf.field.kind|is_enum_kind %}
|
|
|