| 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 f4daef8f2321a8831ee2a4260efde15fa755067d..c6b0ade9e1df98aae20f963114dcc6b71f74a9bc 100644
|
| --- a/mojo/public/tools/bindings/generators/mojom_cpp_generator.py
|
| +++ b/mojo/public/tools/bindings/generators/mojom_cpp_generator.py
|
| @@ -153,8 +153,17 @@ def GetCppPodType(kind):
|
| return _kind_to_cpp_type[kind]
|
|
|
| def GetCppWrapperType(kind):
|
| + def _AddOptional(type_name):
|
| + pattern = "WTF::Optional<%s>" if _for_blink else "base::Optional<%s>"
|
| + return pattern % type_name
|
| +
|
| if IsTypemappedKind(kind):
|
| - return GetNativeTypeName(kind)
|
| + type_name = GetNativeTypeName(kind)
|
| + if (mojom.IsNullableKind(kind) and
|
| + not _current_typemap[GetFullMojomNameForKind(kind)][
|
| + "nullable_is_same_type"]):
|
| + type_name = _AddOptional(type_name)
|
| + return type_name
|
| if mojom.IsEnumKind(kind):
|
| return GetNameForKind(kind)
|
| if mojom.IsStructKind(kind) or mojom.IsUnionKind(kind):
|
| @@ -162,23 +171,19 @@ def GetCppWrapperType(kind):
|
| if mojom.IsArrayKind(kind):
|
| pattern = None
|
| if _use_new_wrapper_types:
|
| + pattern = "WTF::Vector<%s>" if _for_blink else "std::vector<%s>"
|
| if mojom.IsNullableKind(kind):
|
| - pattern = ("WTF::Optional<WTF::Vector<%s>>" if _for_blink else
|
| - "base::Optional<std::vector<%s>>")
|
| - else:
|
| - pattern = "WTF::Vector<%s>" if _for_blink else "std::vector<%s>"
|
| + pattern = _AddOptional(pattern)
|
| else:
|
| pattern = "mojo::WTFArray<%s>" if _for_blink else "mojo::Array<%s>"
|
| return pattern % GetCppWrapperType(kind.kind)
|
| if mojom.IsMapKind(kind):
|
| pattern = None
|
| if _use_new_wrapper_types:
|
| + pattern = ("WTF::HashMap<%s, %s>" if _for_blink else
|
| + "std::unordered_map<%s, %s>")
|
| if mojom.IsNullableKind(kind):
|
| - pattern = ("WTF::Optional<WTF::HashMap<%s, %s>>" if _for_blink else
|
| - "base::Optional<std::unordered_map<%s, %s>>")
|
| - else:
|
| - pattern = ("WTF::HashMap<%s, %s>" if _for_blink else
|
| - "std::unordered_map<%s, %s>")
|
| + pattern = _AddOptional(pattern)
|
| else:
|
| pattern = "mojo::WTFMap<%s, %s>" if _for_blink else "mojo::Map<%s, %s>"
|
| return pattern % (GetCppWrapperType(kind.key_kind),
|
| @@ -196,8 +201,8 @@ def GetCppWrapperType(kind):
|
| return "WTF::String"
|
| if not _use_new_wrapper_types:
|
| return "mojo::String"
|
| - return ("base::Optional<std::string>" if mojom.IsNullableKind(kind) else
|
| - "std::string")
|
| + type_name = "std::string"
|
| + return _AddOptional(type_name) if mojom.IsNullableKind(kind) else type_name
|
| if mojom.IsGenericHandleKind(kind):
|
| return "mojo::ScopedHandle"
|
| if mojom.IsDataPipeConsumerKind(kind):
|
|
|