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

Side by Side Diff: mojo/public/tools/bindings/generators/cpp_templates/wrapper_union_class_definition.tmpl

Issue 1550733002: Convert Pass()→std::move() in generated Mojo bindings. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 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 unified diff | Download patch
« no previous file with comments | « mojo/public/tools/bindings/generators/cpp_templates/wrapper_class_definition.tmpl ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // static 1 // static
2 {{union.name}}Ptr {{union.name}}::New() { 2 {{union.name}}Ptr {{union.name}}::New() {
3 {{union.name}}Ptr rv; 3 {{union.name}}Ptr rv;
4 mojo::internal::StructHelper<{{union.name}}>::Initialize(&rv); 4 mojo::internal::StructHelper<{{union.name}}>::Initialize(&rv);
5 return rv.Pass(); 5 return rv;
6 } 6 }
7 7
8 {{union.name}}::{{union.name}}() { 8 {{union.name}}::{{union.name}}() {
9 // TODO(azani): Implement default values here when/if we support them. 9 // TODO(azani): Implement default values here when/if we support them.
10 // TODO(azani): Set to UNKNOWN when unknown is implemented. 10 // TODO(azani): Set to UNKNOWN when unknown is implemented.
11 SetActive(static_cast<Tag>(0)); 11 SetActive(static_cast<Tag>(0));
12 } 12 }
13 13
14 {{union.name}}::~{{union.name}}() { 14 {{union.name}}::~{{union.name}}() {
15 DestroyActive(); 15 DestroyActive();
16 } 16 }
17 17
18 {% if union|is_cloneable_kind %} 18 {% if union|is_cloneable_kind %}
19 {{union.name}}Ptr {{union.name}}::Clone() const { 19 {{union.name}}Ptr {{union.name}}::Clone() const {
20 {{union.name}}Ptr rv(New()); 20 {{union.name}}Ptr rv(New());
21 switch (tag_) { 21 switch (tag_) {
22 {% for field in union.fields %} 22 {% for field in union.fields %}
23 case Tag::{{field.name|upper}}: 23 case Tag::{{field.name|upper}}:
24 {% if field.kind|is_string_kind %} 24 {% if field.kind|is_string_kind %}
25 rv->set_{{field.name}}(*(data_.{{field.name}})); 25 rv->set_{{field.name}}(*(data_.{{field.name}}));
26 {% elif field.kind|is_object_kind %} 26 {% elif field.kind|is_object_kind %}
27 rv->set_{{field.name}}(data_.{{field.name}}->Clone()); 27 rv->set_{{field.name}}(data_.{{field.name}}->Clone());
28 {%- else %} 28 {%- else %}
29 rv->set_{{field.name}}(data_.{{field.name}}); 29 rv->set_{{field.name}}(data_.{{field.name}});
30 {%- endif %} 30 {%- endif %}
31 break; 31 break;
32 {%- endfor %} 32 {%- endfor %}
33 }; 33 };
34 return rv.Pass(); 34 return rv;
35 } 35 }
36 {%- endif %} 36 {%- endif %}
37 37
38 bool {{union.name}}::Equals(const {{union.name}}& other) const { 38 bool {{union.name}}::Equals(const {{union.name}}& other) const {
39 if (tag_ != other.which()) { 39 if (tag_ != other.which()) {
40 return false; 40 return false;
41 } 41 }
42 42
43 switch (tag_) { 43 switch (tag_) {
44 {% for field in union.fields %} 44 {% for field in union.fields %}
(...skipping 24 matching lines...) Expand all
69 return data_.{{field.name}}; 69 return data_.{{field.name}};
70 {%- endif %} 70 {%- endif %}
71 } 71 }
72 72
73 void {{union.name}}::set_{{field.name}}({{field.kind|cpp_const_wrapper_type}} {{ field.name}}) { 73 void {{union.name}}::set_{{field.name}}({{field.kind|cpp_const_wrapper_type}} {{ field.name}}) {
74 SwitchActive(Tag::{{field.name|upper}}); 74 SwitchActive(Tag::{{field.name|upper}});
75 {% if field.kind|is_string_kind %} 75 {% if field.kind|is_string_kind %}
76 *(data_.{{field.name}}) = {{field.name}}; 76 *(data_.{{field.name}}) = {{field.name}};
77 {% elif field.kind|is_object_kind or field.kind|is_interface_kind or 77 {% elif field.kind|is_object_kind or field.kind|is_interface_kind or
78 field.kind|is_associated_kind %} 78 field.kind|is_associated_kind %}
79 *(data_.{{field.name}}) = {{field.name}}.Pass(); 79 *(data_.{{field.name}}) = std::move({{field.name}});
80 {% elif field.kind|is_any_handle_kind %} 80 {% elif field.kind|is_any_handle_kind %}
81 data_.{{field.name}}->reset({{field.name}}.release()); 81 data_.{{field.name}}->reset({{field.name}}.release());
82 {%- else %} 82 {%- else %}
83 data_.{{field.name}} = {{field.name}}; 83 data_.{{field.name}} = {{field.name}};
84 {%- endif %} 84 {%- endif %}
85 } 85 }
86 {%- endfor %} 86 {%- endfor %}
87 87
88 void {{union.name}}::SwitchActive(Tag new_active) { 88 void {{union.name}}::SwitchActive(Tag new_active) {
89 if (new_active == tag_) { 89 if (new_active == tag_) {
(...skipping 24 matching lines...) Expand all
114 {% for field in union.fields %} 114 {% for field in union.fields %}
115 case Tag::{{field.name|upper}}: 115 case Tag::{{field.name|upper}}:
116 {% if field.kind|is_object_kind or field.kind|is_any_handle_kind or 116 {% if field.kind|is_object_kind or field.kind|is_any_handle_kind or
117 field.kind|is_interface_kind or field.kind|is_associated_kind %} 117 field.kind|is_interface_kind or field.kind|is_associated_kind %}
118 delete data_.{{field.name}}; 118 delete data_.{{field.name}};
119 {%- endif %} 119 {%- endif %}
120 break; 120 break;
121 {%- endfor %} 121 {%- endfor %}
122 } 122 }
123 } 123 }
OLDNEW
« no previous file with comments | « mojo/public/tools/bindings/generators/cpp_templates/wrapper_class_definition.tmpl ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698