| 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 9a6bbb79148e25fbe39d83d441c9eda9ead553e8..940704afdfddd9a686491111867e481da3d7da64 100644
|
| --- a/mojo/public/tools/bindings/generators/mojom_cpp_generator.py
|
| +++ b/mojo/public/tools/bindings/generators/mojom_cpp_generator.py
|
| @@ -29,12 +29,23 @@ _kind_to_cpp_type = {
|
| mojom.DOUBLE: "double",
|
| }
|
|
|
| +_kind_to_cpp_literal_suffix = {
|
| + mojom.UINT8: "U",
|
| + mojom.UINT16: "U",
|
| + mojom.UINT32: "U",
|
| + mojom.FLOAT: "f",
|
| + mojom.UINT64: "ULL",
|
| +}
|
| +
|
| +def ConstantValue(constant):
|
| + return ExpressionToText(constant.value, kind=constant.kind)
|
| +
|
| def DefaultValue(field):
|
| if field.default:
|
| if isinstance(field.kind, mojom.Struct):
|
| assert field.default == "default"
|
| return "%s::New()" % GetNameForKind(field.kind)
|
| - return ExpressionToText(field.default)
|
| + return ExpressionToText(field.default, kind=field.kind)
|
| return ""
|
|
|
| def NamespaceToArray(namespace):
|
| @@ -193,7 +204,7 @@ def IsStructWithHandles(struct):
|
| return True
|
| return False
|
|
|
| -def TranslateConstants(token):
|
| +def TranslateConstants(token, kind):
|
| if isinstance(token, (mojom.NamedValue, mojom.EnumValue)):
|
| # Both variable and enum constants are constructed like:
|
| # Namespace::Struct::CONSTANT_NAME
|
| @@ -204,10 +215,10 @@ def TranslateConstants(token):
|
| name.append(token.parent_kind.name)
|
| name.append(token.name)
|
| return "::".join(name)
|
| - return token
|
| + return '%s%s' % (token, _kind_to_cpp_literal_suffix.get(kind, ''))
|
|
|
| -def ExpressionToText(value):
|
| - return TranslateConstants(value)
|
| +def ExpressionToText(value, kind=None):
|
| + return TranslateConstants(value, kind)
|
|
|
| def HasCallbacks(interface):
|
| for method in interface.methods:
|
| @@ -229,6 +240,7 @@ _HEADER_SIZE = 8
|
| class Generator(generator.Generator):
|
|
|
| cpp_filters = {
|
| + "constant_value": ConstantValue,
|
| "cpp_const_wrapper_type": GetCppConstWrapperType,
|
| "cpp_field_type": GetCppFieldType,
|
| "cpp_pod_type": GetCppPodType,
|
|
|