| 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 7a030238623cef01e45cf74dab417ea83c6cbb3a..ccd4b427d8e159a2e5233c517dedcbe49916928a 100644
|
| --- a/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl
|
| +++ b/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl
|
| @@ -6,6 +6,8 @@
|
| {%- for param in parameters %}
|
| {%- if param.kind|is_object_kind -%}
|
| mojo::internal::Wrap(params->{{param.name}}())
|
| +{%- elif param.kind|is_interface_kind -%}
|
| +mojo::MakeProxy<{{param.kind.name}}>(mojo::MakePassable(params->{{param.name}}()).Pass())
|
| {%- elif param.kind|is_handle_kind -%}
|
| mojo::MakePassable(params->{{param.name}}()).Pass()
|
| {%- elif param.kind|is_enum_kind -%}
|
| @@ -38,6 +40,14 @@ params->{{param.name}}()
|
| if (!in_{{param.name}}.is_null())
|
| params->set_{{param.name}}(
|
| mojo::internal::Unwrap(in_{{param.name}})->Clone(builder.buffer()));
|
| +{%- elif param.kind|is_interface_kind %}
|
| + if (!in_{{param.name}}.get()) {
|
| + params->set_{{param.name}}(mojo::MessagePipeHandle());
|
| + } else {
|
| + // Delegate handle.
|
| + params->set_{{param.name}}(
|
| + in_{{param.name}}.ResetAndReturnMessagePipe().release());
|
| + }
|
| {%- elif param.kind|is_handle_kind %}
|
| params->set_{{param.name}}(in_{{param.name}}.release());
|
| {%- else %}
|
| @@ -165,8 +175,8 @@ void {{class_name}}_{{method.name}}_ProxyToResponder::Run(
|
| {%- endif -%}
|
| {%- endfor %}
|
|
|
| -{{class_name}}Stub::{{class_name}}Stub({{class_name}}* sink)
|
| - : sink_(sink) {
|
| +{{class_name}}Stub::{{class_name}}Stub()
|
| + : sink_(NULL) {
|
| }
|
|
|
| {#--- Stub definition #}
|
|
|