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

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

Issue 164873002: Fix bug with using enums as default values in mojom. We were previously (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 10 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/bindings/generators/mojom_cpp_generator.py
diff --git a/mojo/public/bindings/generators/mojom_cpp_generator.py b/mojo/public/bindings/generators/mojom_cpp_generator.py
index b0592a8271e0271b47c081e1432e31cc73ba2264..4420aafd88f7f01f34e01cd1b14f2afb818fff4d 100644
--- a/mojo/public/bindings/generators/mojom_cpp_generator.py
+++ b/mojo/public/bindings/generators/mojom_cpp_generator.py
@@ -102,11 +102,17 @@ def IsStructWithHandles(struct):
return True
return False
-def SubstituteNamespace(value, imports):
- for import_item in imports:
- value = value.replace(import_item['namespace'] + ".",
- import_item['namespace'] + "::")
- return value
+def SubstituteNamespace(token, module):
+ for import_item in module.imports:
+ token = token.replace(import_item["namespace"] + ".",
+ import_item["namespace"] + "::")
+ return token
+
+def ExpressionToText(value, module):
+ if value[0] != "EXPRESSION":
+ raise Exception("Expected EXPRESSION, got" + value)
+ return "".join(mojom_generator.ExpressionMapper(value,
+ lambda token: SubstituteNamespace(token, module)))
_HEADER_SIZE = 8
@@ -118,6 +124,7 @@ class Generator(mojom_generator.Generator):
"cpp_field_type": GetCppFieldType,
"cpp_type": GetCppType,
"cpp_wrapper_type": GetCppWrapperType,
+ "expression_to_text": ExpressionToText,
"get_pad": mojom_pack.GetPad,
"is_handle_kind": mojom_generator.IsHandleKind,
"is_object_kind": mojom_generator.IsObjectKind,
@@ -127,12 +134,12 @@ class Generator(mojom_generator.Generator):
"struct_size": lambda ps: ps.GetTotalSize() + _HEADER_SIZE,
"struct_from_method": mojom_generator.GetStructFromMethod,
"stylize_method": mojom_generator.StudlyCapsToCamel,
- "substitute_namespace": SubstituteNamespace,
"verify_token_type": mojom_generator.VerifyTokenType,
}
def GetJinjaExports(self):
return {
+ "module": self.module,
"module_name": self.module.name,
"namespace": self.module.namespace,
"imports": self.module.imports,

Powered by Google App Engine
This is Rietveld 408576698