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 8f90c419d57c1dc1377f79806d743a5723290856..27c1b2bf5f8712f3c02d04a0483603ca001c634e 100644 |
--- a/mojo/public/tools/bindings/generators/mojom_cpp_generator.py |
+++ b/mojo/public/tools/bindings/generators/mojom_cpp_generator.py |
@@ -243,6 +243,24 @@ def ShouldInlineStruct(struct): |
return False |
return True |
+def GetArrayValidateParams(kind): |
+ if not mojom.IsAnyArrayKind(kind) and not mojom.IsStringKind(kind): |
+ return "mojo::internal::NoValidateParams" |
+ |
+ if mojom.IsStringKind(kind): |
+ expected_num_elements = 0 |
+ element_nullable = False |
+ element_validate_params = "mojo::internal::NoValidateParams" |
+ else: |
+ expected_num_elements = generator.ExpectedArraySize(kind) |
+ element_nullable = mojom.IsNullableKind(kind.kind) |
+ element_validate_params = GetArrayValidateParams(kind.kind) |
+ |
+ return "mojo::internal::ArrayValidateParams<%d, %s,\n%s> " % ( |
+ expected_num_elements, |
+ 'true' if element_nullable else 'false', |
+ element_validate_params) |
+ |
_HEADER_SIZE = 8 |
class Generator(generator.Generator): |
@@ -258,6 +276,7 @@ class Generator(generator.Generator): |
"default_value": DefaultValue, |
"expected_array_size": generator.ExpectedArraySize, |
"expression_to_text": ExpressionToText, |
+ "get_array_validate_params": GetArrayValidateParams, |
"get_name_for_kind": GetNameForKind, |
"get_pad": pack.GetPad, |
"has_callbacks": HasCallbacks, |
@@ -268,6 +287,7 @@ class Generator(generator.Generator): |
"is_any_handle_kind": mojom.IsAnyHandleKind, |
"is_interface_kind": mojom.IsInterfaceKind, |
"is_interface_request_kind": mojom.IsInterfaceRequestKind, |
+ "is_nullable_kind": mojom.IsNullableKind, |
"is_object_kind": mojom.IsObjectKind, |
"is_string_kind": mojom.IsStringKind, |
"is_struct_with_handles": IsStructWithHandles, |