| Index: mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl
|
| diff --git a/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl b/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl
|
| index 17f75b6f08a47340eed2b2ca4d5e5b5add7c47ad..2c8a0646bb06d490ada8f815f25e4d876147f01c 100644
|
| --- a/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl
|
| +++ b/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl
|
| @@ -45,24 +45,39 @@ params->{{param.name}}
|
| {%- endmacro %}
|
|
|
| {%- macro build_message(params_name, parameters) -%}
|
| + {# TODO(yzshen): Consider refactoring to share code with
|
| + struct_serialization_definition.tmpl #}
|
| {{params_name}}* params =
|
| {{params_name}}::New(builder.buffer());
|
| {#--- Sets #}
|
| {% for param in parameters %}
|
| {%- if param.kind|is_object_kind %}
|
| +{%- if param.kind|is_any_array_kind %}
|
| + mojo::SerializeArray_<{{param.kind|get_array_validate_params|indent(24)}}>(
|
| + mojo::internal::Forward(in_{{param.name}}), builder.buffer(), ¶ms->{{param.name}}.ptr);
|
| +{%- else %}
|
| Serialize_(mojo::internal::Forward(in_{{param.name}}), builder.buffer(), ¶ms->{{param.name}}.ptr);
|
| -{%- elif param.kind|is_interface_kind %}
|
| - if (!in_{{param.name}}.get()) {
|
| - params->{{param.name}} = mojo::MessagePipeHandle();
|
| - } else {
|
| - // Delegate handle.
|
| - params->{{param.name}} = in_{{param.name}}.PassMessagePipe().release();
|
| - }
|
| -{%- elif param.kind|is_interface_request_kind %}
|
| +{%- endif %}
|
| +{%- if not param.kind|is_nullable_kind %}
|
| + MOJO_INTERNAL_DLOG_SERIALIZATION_WARNING(
|
| + mojo::internal::IsNonNullableValidationEnabled() &&
|
| + !params->{{param.name}}.ptr,
|
| + mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER);
|
| +{%- endif %}
|
| +{%- elif param.kind|is_any_handle_kind %}
|
| +{%- if param.kind|is_interface_kind or
|
| + param.kind|is_interface_request_kind %}
|
| // Delegate handle.
|
| params->{{param.name}} = in_{{param.name}}.PassMessagePipe().release();
|
| -{%- elif param.kind|is_any_handle_kind %}
|
| +{%- else %}
|
| params->{{param.name}} = in_{{param.name}}.release();
|
| +{%- endif %}
|
| +{%- if not param.kind|is_nullable_kind %}
|
| + MOJO_INTERNAL_DLOG_SERIALIZATION_WARNING(
|
| + mojo::internal::IsNonNullableValidationEnabled() &&
|
| + !params->{{param.name}}.is_valid(),
|
| + mojo::internal::VALIDATION_ERROR_UNEXPECTED_INVALID_HANDLE);
|
| +{%- endif %}
|
| {%- else %}
|
| params->{{param.name}} = in_{{param.name}};
|
| {%- endif %}
|
|
|