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 4017fc51d18c0f60e69f471c48751545640cfbe8..8fc01dc3263899057ac4248648e761dca3c25a1e 100644 |
--- a/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl |
+++ b/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl |
@@ -16,13 +16,10 @@ |
{{serialization_context}}); |
{{struct_macros.deserialize(struct, "input_data_view", "p_%s", "success")}} |
if (!success) { |
- mojo::internal::ValidationContext validation_context( |
- {{message}}->data(), {{message}}->data_num_bytes(), |
- {{message}}->handles()->size(), {{message}}, |
+ ReportValidationErrorForMessage( |
+ {{message}}, |
+ mojo::internal::VALIDATION_ERROR_DESERIALIZATION_FAILED, |
"{{description}} deserializer"); |
- ReportValidationError( |
- &validation_context, |
- mojo::internal::VALIDATION_ERROR_DESERIALIZATION_FAILED); |
return false; |
} |
{%- endmacro %} |
@@ -100,9 +97,9 @@ bool {{class_name}}_{{method.name}}_HandleSyncResponse::Accept( |
reinterpret_cast<internal::{{class_name}}_{{method.name}}_ResponseParams_Data*>( |
message->mutable_payload()); |
+{%- set desc = class_name~"::"~method.name~" response" %} |
{{alloc_params(method.response_param_struct, "params", "message", |
- "&serialization_context_", |
- "{{class_name}}::{{method.name}} response")}} |
+ "&serialization_context_", desc)}} |
{%- for param in method.response_parameters %} |
*out_{{param.name}}_ = std::move(p_{{param.name}}); |
@@ -133,9 +130,9 @@ bool {{class_name}}_{{method.name}}_ForwardToCallback::Accept( |
reinterpret_cast<internal::{{class_name}}_{{method.name}}_ResponseParams_Data*>( |
message->mutable_payload()); |
+{%- set desc = class_name~"::"~method.name~" response" %} |
{{alloc_params(method.response_param_struct, "params", "message", |
- "&serialization_context_", |
- "{{class_name}}_{{method.name}} response")}} |
+ "&serialization_context_", desc)}} |
if (!callback_.is_null()) |
callback_.Run({{pass_params(method.response_parameters)}}); |
return true; |
@@ -217,9 +214,7 @@ void {{proxy_name}}::{{method.name}}( |
{%- set response_params_struct = method.response_param_struct %} |
{%- set params_description = |
"%s.%s response"|format(interface.name, method.name) %} |
-class {{class_name}}_{{method.name}}_ProxyToResponder |
- : public base::RefCountedThreadSafe< |
- {{class_name}}_{{method.name}}_ProxyToResponder> { |
+class {{class_name}}_{{method.name}}_ProxyToResponder { |
public: |
static {{class_name}}::{{method.name}}Callback CreateCallback( |
uint64_t request_id, |
@@ -227,26 +222,11 @@ class {{class_name}}_{{method.name}}_ProxyToResponder |
mojo::MessageReceiverWithStatus* responder, |
scoped_refptr<mojo::AssociatedGroupController> |
group_controller) { |
- scoped_refptr<{{class_name}}_{{method.name}}_ProxyToResponder> proxy |
- = new {{class_name}}_{{method.name}}_ProxyToResponder( |
- request_id, is_sync, responder, group_controller); |
+ std::unique_ptr<{{class_name}}_{{method.name}}_ProxyToResponder> proxy( |
+ new {{class_name}}_{{method.name}}_ProxyToResponder( |
+ request_id, is_sync, responder, group_controller)); |
return base::Bind(&{{class_name}}_{{method.name}}_ProxyToResponder::Run, |
- proxy); |
- } |
- |
- private: |
- friend class base::RefCountedThreadSafe< |
- {{class_name}}_{{method.name}}_ProxyToResponder>; |
- |
- {{class_name}}_{{method.name}}_ProxyToResponder( |
- uint64_t request_id, |
- bool is_sync, |
- mojo::MessageReceiverWithStatus* responder, |
- scoped_refptr<mojo::AssociatedGroupController> group_controller) |
- : request_id_(request_id), |
- is_sync_(is_sync), |
- responder_(responder), |
- serialization_context_(std::move(group_controller)) { |
+ base::Passed(&proxy)); |
} |
~{{class_name}}_{{method.name}}_ProxyToResponder() { |
@@ -263,6 +243,18 @@ class {{class_name}}_{{method.name}}_ProxyToResponder |
delete responder_; |
} |
+ private: |
+ {{class_name}}_{{method.name}}_ProxyToResponder( |
+ uint64_t request_id, |
+ bool is_sync, |
+ mojo::MessageReceiverWithStatus* responder, |
+ scoped_refptr<mojo::AssociatedGroupController> group_controller) |
+ : request_id_(request_id), |
+ is_sync_(is_sync), |
+ responder_(responder), |
+ serialization_context_(std::move(group_controller)) { |
+ } |
+ |
void Run( |
{{interface_macros.declare_responder_params( |
"in_", method.response_parameters, for_blink, |
@@ -320,9 +312,9 @@ bool {{class_name}}Stub::Accept(mojo::Message* message) { |
reinterpret_cast<internal::{{class_name}}_{{method.name}}_Params_Data*>( |
message->mutable_payload()); |
+{%- set desc = class_name~"::"~method.name %} |
{{alloc_params(method.param_struct, "params", "message", |
- "&serialization_context_", "{{class_name}}::{{method.name}}") |
- |indent(4)}} |
+ "&serialization_context_", desc)|indent(4)}} |
// A null |sink_| means no implementation was bound. |
assert(sink_); |
TRACE_EVENT0("mojom", "{{class_name}}::{{method.name}}"); |
@@ -351,8 +343,9 @@ bool {{class_name}}Stub::AcceptWithResponder( |
reinterpret_cast<internal::{{class_name}}_{{method.name}}_Params_Data*>( |
message->mutable_payload()); |
+{%- set desc = class_name~"::"~method.name %} |
{{alloc_params(method.param_struct, "params", "message", |
- "&serialization_context_", "{{class_name}}::{{method.name}}")| |
+ "&serialization_context_", desc)| |
indent(4)}} |
{{class_name}}::{{method.name}}Callback callback = |
{{class_name}}_{{method.name}}_ProxyToResponder::CreateCallback( |