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

Unified Diff: Source/bindings/scripts/code_generator_v8.py

Issue 735983002: IDL: Defer typedef resolution (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 1 month 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: Source/bindings/scripts/code_generator_v8.py
diff --git a/Source/bindings/scripts/code_generator_v8.py b/Source/bindings/scripts/code_generator_v8.py
index b34cfcb09506f8c5a8bc63c0d58bf4c0cf42c74e..d0e43bb4e9d283b2098e13a3f139c66b2aecd321 100644
--- a/Source/bindings/scripts/code_generator_v8.py
+++ b/Source/bindings/scripts/code_generator_v8.py
@@ -116,9 +116,10 @@ def set_global_type_info(interfaces_info):
class CodeGeneratorBase(object):
"""Base class for v8 bindings generator and IDL dictionary impl generator"""
- def __init__(self, interfaces_info, cache_dir, output_dir):
+ def __init__(self, interfaces_info, component_info, cache_dir, output_dir):
interfaces_info = interfaces_info or {}
self.interfaces_info = interfaces_info
+ self.component_info = component_info
self.jinja_env = initialize_jinja_env(cache_dir)
self.output_dir = output_dir
set_global_type_info(interfaces_info)
@@ -129,6 +130,8 @@ class CodeGeneratorBase(object):
IdlType.set_callback_functions(definitions.callback_functions.keys())
IdlType.set_enums((enum.name, enum.values)
for enum in definitions.enumerations.values())
+ # Resolve typedefs
+ definitions.resolve_typedefs(self.component_info['typedefs'])
return self.generate_code_internal(definitions, definition_name)
def generate_code_internal(self, definitions, definition_name):
@@ -137,8 +140,8 @@ class CodeGeneratorBase(object):
class CodeGeneratorV8(CodeGeneratorBase):
- def __init__(self, interfaces_info, cache_dir, output_dir):
- CodeGeneratorBase.__init__(self, interfaces_info, cache_dir, output_dir)
+ def __init__(self, interfaces_info, component_info, cache_dir, output_dir):
+ CodeGeneratorBase.__init__(self, interfaces_info, component_info, cache_dir, output_dir)
def output_paths(self, definition_name):
header_path = posixpath.join(self.output_dir,
@@ -220,8 +223,8 @@ class CodeGeneratorV8(CodeGeneratorBase):
class CodeGeneratorDictionaryImpl(CodeGeneratorBase):
- def __init__(self, interfaces_info, cache_dir, output_dir):
- CodeGeneratorBase.__init__(self, interfaces_info, cache_dir, output_dir)
+ def __init__(self, interfaces_info, component_info, cache_dir, output_dir):
+ CodeGeneratorBase.__init__(self, interfaces_info, component_info, cache_dir, output_dir)
def output_paths(self, definition_name, interface_info):
output_dir = posixpath.join(self.output_dir,

Powered by Google App Engine
This is Rietveld 408576698