| Index: third_party/mojo/src/mojo/public/tools/bindings/pylib/mojom/generate/data.py
|
| diff --git a/third_party/mojo/src/mojo/public/tools/bindings/pylib/mojom/generate/data.py b/third_party/mojo/src/mojo/public/tools/bindings/pylib/mojom/generate/data.py
|
| index 3d0ac2e2c3f09fdc3f7636bbd1ab129dbc6917ff..bc727b4c8f53cd162d309e9f06adb82ad6c3c572 100644
|
| --- a/third_party/mojo/src/mojo/public/tools/bindings/pylib/mojom/generate/data.py
|
| +++ b/third_party/mojo/src/mojo/public/tools/bindings/pylib/mojom/generate/data.py
|
| @@ -242,16 +242,24 @@ def FieldToData(field):
|
| AddOptional(data, istr(4, 'attributes'), field.attributes)
|
| return data
|
|
|
| -def FieldFromData(module, data, struct):
|
| - field = mojom.Field()
|
| +def StructFieldFromData(module, data, struct):
|
| + field = mojom.StructField()
|
| + PopulateField(field, module, data, struct)
|
| + return field
|
| +
|
| +def UnionFieldFromData(module, data, union):
|
| + field = mojom.UnionField()
|
| + PopulateField(field, module, data, union)
|
| + return field
|
| +
|
| +def PopulateField(field, module, data, parent):
|
| field.name = data['name']
|
| field.kind = KindFromData(
|
| - module.kinds, data['kind'], (module.namespace, struct.name))
|
| + module.kinds, data['kind'], (module.namespace, parent.name))
|
| field.ordinal = data.get('ordinal')
|
| field.default = FixupExpression(
|
| - module, data.get('default'), (module.namespace, struct.name), field.kind)
|
| + module, data.get('default'), (module.namespace, parent.name), field.kind)
|
| field.attributes = data.get('attributes')
|
| - return field
|
|
|
| def ParameterToData(parameter):
|
| data = {
|
| @@ -422,11 +430,11 @@ def ModuleFromData(data):
|
| # to refer to kinds defined anywhere in the mojom.
|
| for struct in module.structs:
|
| struct.fields = map(lambda field:
|
| - FieldFromData(module, field, struct), struct.fields_data)
|
| + StructFieldFromData(module, field, struct), struct.fields_data)
|
| del struct.fields_data
|
| for union in module.unions:
|
| union.fields = map(lambda field:
|
| - FieldFromData(module, field, union), union.fields_data)
|
| + UnionFieldFromData(module, field, union), union.fields_data)
|
| del union.fields_data
|
| for interface in module.interfaces:
|
| interface.methods = map(lambda method:
|
|
|