Index: mojo/public/tools/bindings/generators/mojom_cpp_generator.py |
diff --git a/mojo/public/tools/bindings/generators/mojom_cpp_generator.py b/mojo/public/tools/bindings/generators/mojom_cpp_generator.py |
index 8b7e2197c08b35824826ac7498b79cd43c82ac03..f38aecb80fa0f64c58d490c30b7651f97dbfe643 100644 |
--- a/mojo/public/tools/bindings/generators/mojom_cpp_generator.py |
+++ b/mojo/public/tools/bindings/generators/mojom_cpp_generator.py |
@@ -75,6 +75,8 @@ def GetCppType(kind): |
GetCppType(kind.key_kind), GetCppType(kind.value_kind)) |
if mojom.IsStructKind(kind): |
return "%s_Data*" % GetNameForKind(kind, internal=True) |
+ if mojom.IsUnionKind(kind): |
+ return "%s_Data" % GetNameForKind(kind, internal=True) |
if mojom.IsInterfaceKind(kind) or mojom.IsInterfaceRequestKind(kind): |
return "mojo::MessagePipeHandle" |
if mojom.IsEnumKind(kind): |
@@ -91,7 +93,7 @@ def GetCppPodType(kind): |
def GetCppArrayArgWrapperType(kind): |
if mojom.IsEnumKind(kind): |
return GetNameForKind(kind) |
- if mojom.IsStructKind(kind): |
+ if mojom.IsStructKind(kind) or mojom.IsUnionKind(kind): |
return "%sPtr" % GetNameForKind(kind) |
if mojom.IsArrayKind(kind): |
return "mojo::Array<%s> " % GetCppArrayArgWrapperType(kind.kind) |
@@ -147,7 +149,7 @@ def GetCppResultWrapperType(kind): |
def GetCppWrapperType(kind): |
if mojom.IsEnumKind(kind): |
return GetNameForKind(kind) |
- if mojom.IsStructKind(kind): |
+ if mojom.IsStructKind(kind) or mojom.IsUnionKind(kind): |
return "%sPtr" % GetNameForKind(kind) |
if mojom.IsArrayKind(kind): |
return "mojo::Array<%s>" % GetCppArrayArgWrapperType(kind.kind) |
@@ -206,6 +208,8 @@ def GetCppFieldType(kind): |
if mojom.IsStructKind(kind): |
return ("mojo::internal::StructPointer<%s_Data>" % |
GetNameForKind(kind, internal=True)) |
+ if mojom.IsUnionKind(kind): |
+ return "%s_Data" % GetNameForKind(kind, internal=True) |
if mojom.IsArrayKind(kind): |
return "mojo::internal::ArrayPointer<%s>" % GetCppType(kind.kind) |
if mojom.IsMapKind(kind): |