Chromium Code Reviews| 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 a23b10785770ad4ab9ec8dc59dda7a96aad10917..7114c60115f2119bf8a66e83305e4ae72c2d7e58 100644 |
| --- a/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl |
| +++ b/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl |
| @@ -169,14 +169,14 @@ bool {{proxy_name}}::{{method.name}}( |
| "&serialization_context")}} |
| bool result = false; |
| - mojo::MessageReceiver* responder = |
| + std::unique_ptr<mojo::MessageReceiver> responder( |
| new {{class_name}}_{{method.name}}_HandleSyncResponse( |
| &result |
| {%- for param in method.response_parameters -%} |
| , param_{{param.name}} |
| -{%- endfor %}); |
| - if (!receiver_->AcceptWithResponder(builder.message(), responder)) |
| - delete responder; |
| +{%- endfor %})); |
| + ignore_result(receiver_->AcceptWithResponder(builder.message(), |
| + std::move(responder))); |
| return result; |
| } |
| {%- endif %} |
| @@ -200,15 +200,15 @@ void {{proxy_name}}::{{method.name}}( |
| "&serialization_context")}} |
| {%- if method.response_parameters != None %} |
| - mojo::MessageReceiver* responder = |
| - new {{class_name}}_{{method.name}}_ForwardToCallback(std::move(callback)); |
| - if (!receiver_->AcceptWithResponder(builder.message(), responder)) |
| - delete responder; |
| + std::unique_ptr<mojo::MessageReceiver> responder( |
| + new {{class_name}}_{{method.name}}_ForwardToCallback( |
| + std::move(callback))); |
| + ignore_result(receiver_->AcceptWithResponder(builder.message(), |
| + std::move(responder))); |
| {%- else %} |
| - bool ok = receiver_->Accept(builder.message()); |
| + ignore_result(receiver_->Accept(builder.message())); |
| // This return value may be ignored as !ok implies the Connector has |
|
yzshen1
2017/03/21 16:10:00
Please move this comment to be above line 209, and
watk
2017/03/22 07:09:15
Done.
|
| // encountered an error, which will be visible through other means. |
| - ALLOW_UNUSED_LOCAL(ok); |
| {%- endif %} |
| } |
| {%- endfor %} |
| @@ -226,10 +226,10 @@ class {{class_name}}_{{method.name}}_ProxyToResponder { |
| static {{class_name}}::{{method.name}}Callback CreateCallback( |
| uint64_t request_id, |
| bool is_sync, |
| - mojo::MessageReceiverWithStatus* responder) { |
| + std::unique_ptr<mojo::MessageReceiverWithStatus> responder) { |
| std::unique_ptr<{{class_name}}_{{method.name}}_ProxyToResponder> proxy( |
| new {{class_name}}_{{method.name}}_ProxyToResponder( |
| - request_id, is_sync, responder)); |
| + request_id, is_sync, std::move(responder))); |
| return base::Bind(&{{class_name}}_{{method.name}}_ProxyToResponder::Run, |
| base::Passed(&proxy)); |
| } |
| @@ -245,17 +245,17 @@ class {{class_name}}_{{method.name}}_ProxyToResponder { |
| #endif |
| // If the Callback was dropped then deleting the responder will close |
| // the pipe so the calling application knows to stop waiting for a reply. |
| - delete responder_; |
| + responder_ = nullptr; |
| } |
| private: |
| {{class_name}}_{{method.name}}_ProxyToResponder( |
| uint64_t request_id, |
| bool is_sync, |
| - mojo::MessageReceiverWithStatus* responder) |
| + std::unique_ptr<mojo::MessageReceiverWithStatus> responder) |
| : request_id_(request_id), |
| is_sync_(is_sync), |
| - responder_(responder) { |
| + responder_(std::move(responder)) { |
| } |
| void Run( |
| @@ -264,7 +264,7 @@ class {{class_name}}_{{method.name}}_ProxyToResponder { |
| uint64_t request_id_; |
| bool is_sync_; |
| - mojo::MessageReceiverWithStatus* responder_; |
| + std::unique_ptr<mojo::MessageReceiverWithStatus> responder_; |
| DISALLOW_COPY_AND_ASSIGN({{class_name}}_{{method.name}}_ProxyToResponder); |
| }; |
| @@ -285,12 +285,10 @@ void {{class_name}}_{{method.name}}_ProxyToResponder::Run( |
| {{build_message(response_params_struct, "in_%s", params_description, |
| "&serialization_context")}} |
| - bool ok = responder_->Accept(builder.message()); |
| - ALLOW_UNUSED_LOCAL(ok); |
| - // TODO(darin): !ok returned here indicates a malformed message, and that may |
| - // be good reason to close the connection. However, we don't have a way to do |
| - // that from here. We should add a way. |
| - delete responder_; |
| + ignore_result(responder_->Accept(builder.message())); |
| + // TODO(darin): Accept() returning false indicates a malformed message, and |
| + // that may be good reason to close the connection. However, we don't have a |
| + // way to do that from here. We should add a way. |
| responder_ = nullptr; |
| } |
| {%- endif -%} |
| @@ -334,7 +332,7 @@ bool {{class_name}}StubDispatch::Accept( |
| bool {{class_name}}StubDispatch::AcceptWithResponder( |
| {{interface.name}}* impl, |
| mojo::Message* message, |
| - mojo::MessageReceiverWithStatus* responder) { |
| + std::unique_ptr<mojo::MessageReceiverWithStatus> responder) { |
| {%- if interface.methods %} |
| switch (message->header()->name) { |
| {%- for method in interface.methods %} |
| @@ -350,7 +348,7 @@ bool {{class_name}}StubDispatch::AcceptWithResponder( |
| {{class_name}}::{{method.name}}Callback callback = |
| {{class_name}}_{{method.name}}_ProxyToResponder::CreateCallback( |
| message->request_id(), |
| - message->has_flag(mojo::Message::kFlagIsSync), responder); |
| + message->has_flag(mojo::Message::kFlagIsSync), std::move(responder)); |
|
yzshen1
2017/03/21 16:10:00
Please make the lines <80 chars. Although we don't
watk
2017/03/22 07:09:15
Done.
|
| // A null |impl| means no implementation was bound. |
| assert(impl); |
| TRACE_EVENT0("mojom", "{{class_name}}::{{method.name}}"); |