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

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 1d90cd2b3fc1e2d0157cf1eee4f017e140af2da2..fb622b21bb438a6f8d7cd6a381e494d76976683e 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,
@@ -221,8 +224,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,
« no previous file with comments | « Source/bindings/modules/v8/generated.gyp ('k') | Source/bindings/scripts/compute_interfaces_info_individual.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698