summaryrefslogtreecommitdiffstats
path: root/mojo
diff options
context:
space:
mode:
authorsky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-16 05:04:08 +0000
committersky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-16 05:04:08 +0000
commit35e4d6dbcb41b8a92a78fc07f4c7163e08107a08 (patch)
tree358d72eca9ed8e6943f4641ac69552b50eaa8061 /mojo
parentab3ccafadf40b3880fd83ab546c424f9e773c5e8 (diff)
downloadchromium_src-35e4d6dbcb41b8a92a78fc07f4c7163e08107a08.zip
chromium_src-35e4d6dbcb41b8a92a78fc07f4c7163e08107a08.tar.gz
chromium_src-35e4d6dbcb41b8a92a78fc07f4c7163e08107a08.tar.bz2
Fixes bug in bindings generator where we generate an empty switch
If the mojom interface has no methods we generate an empty switch statement. Windows compiler doesn't like this. BUG=none TEST=none R=darin@chromium.org Review URL: https://codereview.chromium.org/200523007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257355 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'mojo')
-rw-r--r--mojo/public/bindings/generators/cpp_templates/interface_definition.tmpl26
1 files changed, 14 insertions, 12 deletions
diff --git a/mojo/public/bindings/generators/cpp_templates/interface_definition.tmpl b/mojo/public/bindings/generators/cpp_templates/interface_definition.tmpl
index 960171c..346595f 100644
--- a/mojo/public/bindings/generators/cpp_templates/interface_definition.tmpl
+++ b/mojo/public/bindings/generators/cpp_templates/interface_definition.tmpl
@@ -76,21 +76,23 @@ params->{{param.name}}()
{%- endmacro %}
bool {{class_name}}Stub::Accept(mojo::Message* message) {
+{%- if interface.methods %}
switch (message->header()->name) {
-{%- for method in interface.methods %}
- case internal::k{{class_name}}_{{method.name}}_Name: {
- internal::{{class_name}}_{{method.name}}_Params_Data* params =
- reinterpret_cast<internal::{{class_name}}_{{method.name}}_Params_Data*>(
- message->mutable_payload());
+{%- for method in interface.methods %}
+ case internal::k{{class_name}}_{{method.name}}_Name: {
+ internal::{{class_name}}_{{method.name}}_Params_Data* params =
+ reinterpret_cast<internal::{{class_name}}_{{method.name}}_Params_Data*>(
+ message->mutable_payload());
- if (!params->DecodePointersAndHandles(message))
- return false;
- sink_->{{method.name}}({{params(method)}});
- params->CloseHandles();
- break;
- }
-{%- endfor %}
+ if (!params->DecodePointersAndHandles(message))
+ return false;
+ sink_->{{method.name}}({{params(method)}});
+ params->CloseHandles();
+ break;
+ }
+{%- endfor %}
}
+{%- endif %}
return true;
}