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 8f48f8e06f94433128eab17d02eaac93646cfa72..c3aa73c1ae032420155d36bea07f308b46c373be 100644 |
--- a/mojo/public/tools/bindings/generators/mojom_cpp_generator.py |
+++ b/mojo/public/tools/bindings/generators/mojom_cpp_generator.py |
@@ -57,6 +57,11 @@ def GetCppType(kind): |
return "mojo::internal::String_Data*" |
return _kind_to_cpp_type[kind] |
+def GetCppPodType(kind): |
+ if kind.spec == 's': |
+ return "char*" |
+ return _kind_to_cpp_type[kind] |
+ |
def GetCppArrayArgWrapperType(kind): |
if isinstance(kind, (mojom.Struct, mojom.Enum)): |
return GetNameForKind(kind) |
@@ -148,15 +153,15 @@ def IsStructWithHandles(struct): |
return False |
def TranslateConstants(token, module): |
- if isinstance(token, mojom.Constant): |
- # Enum constants are constructed like: |
- # Namespace::Struct::FIELD_NAME |
+ if isinstance(token, (mojom.NamedValue, mojom.EnumValue)): |
+ # Both variable and enum constants are constructed like: |
+ # Namespace::Struct::CONSTANT_NAME |
name = [] |
if token.imported_from: |
name.extend(NamespaceToArray(token.namespace)) |
if token.parent_kind: |
name.append(token.parent_kind.name) |
- name.append(token.name[1]) |
+ name.append(token.name) |
return "::".join(name) |
return token |
@@ -173,8 +178,9 @@ class Generator(generator.Generator): |
cpp_filters = { |
"cpp_const_wrapper_type": GetCppConstWrapperType, |
"cpp_field_type": GetCppFieldType, |
- "cpp_type": GetCppType, |
+ "cpp_pod_type": GetCppPodType, |
"cpp_result_type": GetCppResultWrapperType, |
+ "cpp_type": GetCppType, |
"cpp_wrapper_type": GetCppWrapperType, |
"expression_to_text": ExpressionToText, |
"get_pad": pack.GetPad, |