Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(44)

Unified Diff: mojo/public/tools/bindings/generators/mojom_cpp_generator.py

Issue 317073005: Mojom: Add 'default' keyword for initializing structs to non-null value. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 fde8bc8eaac0106801abc4f84d21d382c9826d5b..1b3e4aadef83adeb34c9b8e8897de235940c9d0a 100644
--- a/mojo/public/tools/bindings/generators/mojom_cpp_generator.py
+++ b/mojo/public/tools/bindings/generators/mojom_cpp_generator.py
@@ -29,6 +29,13 @@ _kind_to_cpp_type = {
mojom.DOUBLE: "double",
}
+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 ""
def NamespaceToArray(namespace):
return namespace.split('.') if namespace else []
@@ -228,6 +235,7 @@ class Generator(generator.Generator):
"cpp_result_type": GetCppResultWrapperType,
"cpp_type": GetCppType,
"cpp_wrapper_type": GetCppWrapperType,
+ "default_value": DefaultValue,
"expression_to_text": ExpressionToText,
"get_pad": pack.GetPad,
"has_callbacks": HasCallbacks,
@@ -239,13 +247,11 @@ class Generator(generator.Generator):
"is_interface_request_kind": generator.IsInterfaceRequestKind,
"is_object_kind": generator.IsObjectKind,
"is_string_kind": generator.IsStringKind,
- "is_array_kind": lambda kind: isinstance(kind, mojom.Array),
"is_struct_with_handles": IsStructWithHandles,
"struct_size": lambda ps: ps.GetTotalSize() + _HEADER_SIZE,
"struct_from_method": generator.GetStructFromMethod,
"response_struct_from_method": generator.GetResponseStructFromMethod,
"stylize_method": generator.StudlyCapsToCamel,
- "verify_token_type": generator.VerifyTokenType,
}
def GetJinjaExports(self):

Powered by Google App Engine
This is Rietveld 408576698