Index: mojo/public/tools/bindings/generators/cpp_templates/module.h.tmpl |
diff --git a/mojo/public/tools/bindings/generators/cpp_templates/module.h.tmpl b/mojo/public/tools/bindings/generators/cpp_templates/module.h.tmpl |
index 03120024fda3dda88c0df3f02b8b85892323b5a4..d367cd1c8f2a80397b039816dbb5bfbb016dadae 100644 |
--- a/mojo/public/tools/bindings/generators/cpp_templates/module.h.tmpl |
+++ b/mojo/public/tools/bindings/generators/cpp_templates/module.h.tmpl |
@@ -63,6 +63,12 @@ typedef mojo::StructPtr<{{union.name}}> {{union.name}}Ptr; |
{% endif %} |
{%- endfor %} |
+{#--- Unions must be declared first because they can be members of structs #} |
+{#--- Unions #} |
+{% for union in unions %} |
+{% include "wrapper_union_class_declaration.tmpl" %} |
+{%- endfor %} |
+ |
{#--- NOTE: Non-inlined structs may have pointers to inlined structs, so we #} |
{#--- need to fully define inlined structs ahead of the others. #} |
@@ -80,11 +86,6 @@ typedef mojo::StructPtr<{{union.name}}> {{union.name}}Ptr; |
{% endif %} |
{%- endfor %} |
-{#--- Unions #} |
-{% for union in unions %} |
-{% include "wrapper_union_class_declaration.tmpl" %} |
-{%- endfor %} |
- |
{#--- Interfaces -#} |
{% for interface in interfaces %} |
{% include "interface_declaration.tmpl" %} |