Index: lib/dom/scripts/systemnative.py |
diff --git a/lib/dom/scripts/systemnative.py b/lib/dom/scripts/systemnative.py |
index d98fa585c0ef22a2c7d2ba11c317d03539f9639b..a5d279066fb7a01a4545ad594b16cb317b0fa414 100644 |
--- a/lib/dom/scripts/systemnative.py |
+++ b/lib/dom/scripts/systemnative.py |
@@ -15,13 +15,12 @@ from systemhtml import HtmlSystemShared |
class NativeImplementationSystem(systembase.System): |
- def __init__(self, templates, database, emitters, output_dir, auxiliary_dir): |
- super(NativeImplementationSystem, self).__init__( |
- templates, database, emitters, output_dir) |
+ def __init__(self, options, auxiliary_dir): |
+ super(NativeImplementationSystem, self).__init__(options) |
self._auxiliary_dir = auxiliary_dir |
self._cpp_header_files = [] |
self._cpp_impl_files = [] |
- self._html_system = HtmlSystemShared(database) |
+ self._html_system = HtmlSystemShared(self._database) |
def ImplementationGenerator(self, interface): |
return NativeImplementationGenerator(self, interface) |
@@ -47,13 +46,13 @@ class NativeImplementationSystem(systembase.System): |
parameters = [] |
arguments = [] |
for argument in operation.arguments: |
- argument_type_info = GetIDLTypeInfo(argument.type.id) |
+ argument_type_info = self._type_registry.TypeInfo(argument.type.id) |
parameters.append('%s %s' % (argument_type_info.parameter_type(), |
argument.id)) |
arguments.append(argument_type_info.to_dart_conversion(argument.id)) |
cpp_impl_includes |= set(argument_type_info.conversion_includes()) |
- native_return_type = GetIDLTypeInfo(operation.type.id).native_type() |
+ native_return_type = self._type_registry.TypeInfo(operation.type.id).native_type() |
cpp_header_handlers_emitter.Emit( |
'\n' |
' virtual $TYPE handleEvent($PARAMETERS);\n', |
@@ -212,7 +211,7 @@ class NativeImplementationGenerator(systembase.BaseGenerator): |
self._cpp_header_emitter = emitter.Emitter() |
self._cpp_impl_emitter = emitter.Emitter() |
- self._interface_type_info = GetIDLTypeInfo(self._interface.id) |
+ self._interface_type_info = self._TypeInfo(self._interface.id) |
self._members_emitter = emitter.Emitter() |
self._cpp_declarations_emitter = emitter.Emitter() |
self._cpp_impl_includes = set() |
@@ -487,7 +486,7 @@ class NativeImplementationGenerator(systembase.BaseGenerator): |
self._AddSetter(attribute, html_name) |
def _AddGetter(self, attr, html_name): |
- type_info = GetIDLTypeInfo(attr.type.id) |
+ type_info = self._TypeInfo(attr.type.id) |
dart_declaration = '%s get %s()' % (self._DartType(attr.type.id), html_name) |
is_custom = 'Custom' in attr.ext_attrs or 'CustomGetter' in attr.ext_attrs |
cpp_callback_name = self._GenerateNativeBinding(attr.id, 1, |
@@ -501,7 +500,7 @@ class NativeImplementationGenerator(systembase.BaseGenerator): |
raises_exceptions = raises_exceptions or attr.get_raises |
if 'Reflect' in attr.ext_attrs: |
- webcore_function_name = GetIDLTypeInfo(attr.type.id).webcore_getter_name() |
+ webcore_function_name = self._TypeInfo(attr.type.id).webcore_getter_name() |
if 'URL' in attr.ext_attrs: |
if 'NonEmpty' in attr.ext_attrs: |
webcore_function_name = 'getNonEmptyURLAttribute' |
@@ -525,7 +524,7 @@ class NativeImplementationGenerator(systembase.BaseGenerator): |
True, invocation, raises_exceptions=raises_exceptions) |
def _AddSetter(self, attr, html_name): |
- type_info = GetIDLTypeInfo(attr.type.id) |
+ type_info = self._TypeInfo(attr.type.id) |
dart_declaration = 'void set %s(%s)' % (html_name, self._DartType(attr.type.id)) |
is_custom = set(['Custom', 'CustomSetter', 'V8CustomSetter']) & set(attr.ext_attrs) |
cpp_callback_name = self._GenerateNativeBinding(attr.id, 2, |
@@ -538,7 +537,7 @@ class NativeImplementationGenerator(systembase.BaseGenerator): |
self._GenerateCallWithHandling(attr, parameter_definitions_emitter, arguments) |
if 'Reflect' in attr.ext_attrs: |
- webcore_function_name = GetIDLTypeInfo(attr.type.id).webcore_setter_name() |
+ webcore_function_name = self._TypeInfo(attr.type.id).webcore_setter_name() |
arguments.append(self._GenerateWebCoreReflectionAttributeName(attr)) |
else: |
webcore_function_name = re.sub(r'^(xml(?=[A-Z])|\w)', |
@@ -862,7 +861,7 @@ class NativeImplementationGenerator(systembase.BaseGenerator): |
def _GenerateToNative(self, emitter, idl_node, index, |
argument_name=None): |
"""idl_node is IDLArgument or IDLAttribute.""" |
- type_info = GetIDLTypeInfo(idl_node.type.id) |
+ type_info = self._TypeInfo(idl_node.type.id) |
self._cpp_impl_includes |= set(type_info.to_native_includes()) |
argument_name = argument_name or idl_node.id |
handle = 'Dart_GetNativeArgument(args, %i)' % index |
@@ -916,7 +915,7 @@ class NativeImplementationGenerator(systembase.BaseGenerator): |
idl_return_type, attributes, raises_dom_exceptions): |
invocation_template = ' $FUNCTION_CALL;\n' |
if idl_return_type != 'void': |
- return_type_info = GetIDLTypeInfo(idl_return_type) |
+ return_type_info = self._TypeInfo(idl_return_type) |
self._cpp_impl_includes |= set(return_type_info.conversion_includes()) |
# Generate to Dart conversion of C++ value. |
@@ -946,6 +945,9 @@ class NativeImplementationGenerator(systembase.BaseGenerator): |
return emitter.Format(invocation_template, |
FUNCTION_CALL='%s(%s)' % (function_expression, ', '.join(arguments))) |
+ def _TypeInfo(self, type_name): |
+ return self._system._type_registry.TypeInfo(type_name) |
+ |
def _GenerateCPPIncludes(includes): |
return ''.join(['#include %s\n' % include for include in sorted(includes)]) |