Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(20)

Unified Diff: third_party/mojo/src/mojo/public/tools/bindings/generators/cpp_templates/wrapper_union_class_definition.tmpl

Issue 1157843002: Update mojo sdk to rev 1dc8a9a5db73d3718d99917fadf31f5fb2ebad4f (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/mojo/src/mojo/public/tools/bindings/generators/cpp_templates/wrapper_union_class_definition.tmpl
diff --git a/third_party/mojo/src/mojo/public/tools/bindings/generators/cpp_templates/wrapper_union_class_definition.tmpl b/third_party/mojo/src/mojo/public/tools/bindings/generators/cpp_templates/wrapper_union_class_definition.tmpl
index cb4e78516fc5d815cfd2fe74f6e9bf1b1d6d44ad..0f19a15e7a9e07c6c8d0aa573597de067b9c39a2 100644
--- a/third_party/mojo/src/mojo/public/tools/bindings/generators/cpp_templates/wrapper_union_class_definition.tmpl
+++ b/third_party/mojo/src/mojo/public/tools/bindings/generators/cpp_templates/wrapper_union_class_definition.tmpl
@@ -43,7 +43,8 @@ bool {{union.name}}::Equals(const {{union.name}}& other) const {
switch (tag_) {
{% for field in union.fields %}
case Tag::{{field.name|upper}}:
-{% if field.kind|is_object_kind or field.kind|is_any_handle_kind %}
+{% if field.kind|is_object_kind or field.kind|is_any_handle_kind
+ or field.kind|is_interface_kind %}
return mojo::internal::ValueTraits<{{field.kind|cpp_wrapper_type}}>::Equals(*(data_.{{field.name}}), *(other.data_.{{field.name}}));
{%- else %}
return mojo::internal::ValueTraits<{{field.kind|cpp_wrapper_type}}>::Equals(data_.{{field.name}}, other.data_.{{field.name}});
@@ -61,7 +62,8 @@ bool {{union.name}}::is_{{field.name}}() const {
{{field.kind|cpp_union_getter_return_type}} {{union.name}}::get_{{field.name}}() const {
MOJO_DCHECK(tag_ == Tag::{{field.name|upper}});
-{% if field.kind|is_object_kind or field.kind|is_any_handle_kind %}
+{% if field.kind|is_object_kind or field.kind|is_any_handle_kind
+ or field.kind|is_interface_kind %}
return *(data_.{{field.name}});
{%- else %}
return data_.{{field.name}};
@@ -72,7 +74,7 @@ void {{union.name}}::set_{{field.name}}({{field.kind|cpp_const_wrapper_type}} {{
SwitchActive(Tag::{{field.name|upper}});
{% if field.kind|is_string_kind %}
*(data_.{{field.name}}) = {{field.name}};
-{% elif field.kind|is_object_kind %}
+{% elif field.kind|is_object_kind or field.kind|is_interface_kind %}
*(data_.{{field.name}}) = {{field.name}}.Pass();
{% elif field.kind|is_any_handle_kind %}
data_.{{field.name}}->reset({{field.name}}.release());
@@ -95,7 +97,8 @@ void {{union.name}}::SetActive(Tag new_active) {
switch (new_active) {
{% for field in union.fields %}
case Tag::{{field.name|upper}}:
-{% if field.kind|is_object_kind or field.kind|is_any_handle_kind %}
+{% if field.kind|is_object_kind or field.kind|is_any_handle_kind
+ or field.kind|is_interface_kind %}
data_.{{field.name}} = new {{field.kind|cpp_wrapper_type}}();
{%- endif %}
break;
@@ -109,7 +112,8 @@ void {{union.name}}::DestroyActive() {
switch (tag_) {
{% for field in union.fields %}
case Tag::{{field.name|upper}}:
-{% if field.kind|is_object_kind or field.kind|is_any_handle_kind %}
+{% if field.kind|is_object_kind or field.kind|is_any_handle_kind
+ or field.kind|is_interface_kind %}
delete data_.{{field.name}};
{%- endif %}
break;

Powered by Google App Engine
This is Rietveld 408576698