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

Unified Diff: mojo/public/tools/bindings/generators/cpp_templates/struct_macros.tmpl

Issue 2130463002: Mojo C++ bindings: allow StructTraits to return handle or interface types as value. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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: mojo/public/tools/bindings/generators/cpp_templates/struct_macros.tmpl
diff --git a/mojo/public/tools/bindings/generators/cpp_templates/struct_macros.tmpl b/mojo/public/tools/bindings/generators/cpp_templates/struct_macros.tmpl
index f95b33d4452cbf2de359ab78e1bd89938a87faa6..c59f317880d981a58a00df6e3d2d699d7a3e297e 100644
--- a/mojo/public/tools/bindings/generators/cpp_templates/struct_macros.tmpl
+++ b/mojo/public/tools/bindings/generators/cpp_templates/struct_macros.tmpl
@@ -66,13 +66,17 @@
{%- set name = pf.field.name %}
{%- set kind = pf.field.kind %}
{%- set serializer_type = kind|unmapped_type_for_serializer %}
-{%- if kind|is_object_kind %}
+
+{%- if kind|is_object_kind or kind|is_any_handle_or_interface_kind %}
{%- set original_input_field = input_field_pattern|format(name) %}
{%- set input_field = "in_%s"|format(name) if input_may_be_temp
else original_input_field %}
{%- if input_may_be_temp %}
decltype({{original_input_field}}) in_{{name}} = {{original_input_field}};
{%- endif %}
+{%- endif %}
+
+{%- if kind|is_object_kind %}
{%- if kind|is_array_kind or kind|is_map_kind %}
Peng 2016/07/06 18:05:26 This code is totally unreadable to me. Maybe ask o
yzshen1 2016/07/06 18:07:25 I am the author of most of the code in this folder
typename decltype({{output}}->{{name}})::BaseType* {{name}}_ptr;
const mojo::internal::ContainerValidateParams {{name}}_validate_params(

Powered by Google App Engine
This is Rietveld 408576698