Commit 09934eb1 authored by Raul Tambre's avatar Raul Tambre Committed by Commit Bot

mojo: Fix map() Python 3 compatibility

map() returns a list in Python 2. Python 3 returns an iterator.
Wrapping in a list() results in the same behaviour on both.

Traceback (most recent call last):
  File "../../mojo/public/tools/bindings/mojom_bindings_generator.py", line 556, in <module>
    sys.exit(main())
  File "../../mojo/public/tools/bindings/mojom_bindings_generator.py", line 551, in main
    return args.func(args, remaining_args)
  File "../../mojo/public/tools/bindings/mojom_bindings_generator.py", line 267, in _Generate
    processor._GenerateModule(args, remaining_args, generator_modules,
  File "../../mojo/public/tools/bindings/mojom_bindings_generator.py", line 238, in _GenerateModule
    generator.GenerateFiles(filtered_args)
  File "C:\Google\chromium\src\mojo\public\tools\bindings\generators\mojom_cpp_generator.py", line 464, in GenerateFiles
    self.WriteWithComment(self._GenerateModuleSharedHeader(),
  File "C:\Google\chromium\src\mojo\public\tools\bindings\pylib\mojom\generate\template_expander.py", line 36, in GeneratorInternal
    parameters = generator(*args, **kwargs2)
  File "C:\Google\chromium\src\mojo\public\tools\bindings\generators\mojom_cpp_generator.py", line 430, in _GenerateModuleSharedHeader
    return self._GetJinjaExports()
  File "C:\Google\chromium\src\mojo\public\tools\bindings\generators\mojom_cpp_generator.py", line 331, in _GetJinjaExports
    "extra_traits_headers": self._GetExtraTraitsHeaders(),
  File "C:\Google\chromium\src\mojo\public\tools\bindings\generators\mojom_cpp_generator.py", line 215, in _GetExtraTraitsHeaders
    for typemap in self._GetAllUsedTypemaps():
  File "C:\Google\chromium\src\mojo\public\tools\bindings\generators\mojom_cpp_generator.py", line 262, in _GetAllUsedTypemaps
    for parameter in method.parameters + (method.response_parameters or []):
TypeError: unsupported operand type(s) for +: 'map' and 'list'

Bug: 941669
Change-Id: I129c29a1e663671c2d521155b8bb860182cfa121
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2046130
Commit-Queue: Ken Rockot <rockot@google.com>
Auto-Submit: Raul Tambre <raul@tambre.ee>
Reviewed-by: default avatarKen Rockot <rockot@google.com>
Cr-Commit-Position: refs/heads/master@{#740004}
parent a5ba298e
......@@ -396,13 +396,13 @@ def _Method(module, parsed_method, interface):
method = mojom.Method(
interface, parsed_method.mojom_name,
ordinal=parsed_method.ordinal.value if parsed_method.ordinal else None)
method.parameters = map(
lambda parameter: _Parameter(module, parameter, interface),
parsed_method.parameter_list)
method.parameters = list(
map(lambda parameter: _Parameter(module, parameter, interface),
parsed_method.parameter_list))
if parsed_method.response_parameter_list is not None:
method.response_parameters = map(
lambda parameter: _Parameter(module, parameter, interface),
parsed_method.response_parameter_list)
method.response_parameters = list(
map(lambda parameter: _Parameter(module, parameter, interface),
parsed_method.response_parameter_list))
method.attributes = _AttributeListToDict(parsed_method.attribute_list)
# Enforce that only methods with response can have a [Sync] attribute.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment