Chromium Code Reviews| Index: lib/dom/scripts/systemnative.py |
| diff --git a/lib/dom/scripts/systemnative.py b/lib/dom/scripts/systemnative.py |
| index 913c1c0a9387eabd76fb33f911601c2ada31bf09..4bf89660c0900407f629e0535990c58ee8a26f61 100644 |
| --- a/lib/dom/scripts/systemnative.py |
| +++ b/lib/dom/scripts/systemnative.py |
| @@ -387,7 +387,7 @@ class NativeImplementationGenerator(systemwrapping.WrappingInterfaceGenerator): |
| ' static PassRefPtr<NativeType> toNative(Dart_Handle handle, Dart_Handle& exception);\n') |
| else: |
| to_native_emitter.Emit( |
| - ' static PassRefPtr<NativeType> toNative(Dart_Handle handle, Dart_Handle& exception)\n' |
| + ' static NativeType* toNative(Dart_Handle handle, Dart_Handle& exception)\n' |
| ' {\n' |
| ' return DartDOMWrapper::unwrapDartWrapper<Dart$INTERFACE>(handle, exception);\n' |
| ' }\n', |
| @@ -538,7 +538,7 @@ class NativeImplementationGenerator(systemwrapping.WrappingInterfaceGenerator): |
| webcore_function_name += 'Animated' |
| argument_expression = self._GenerateParameterAdapter( |
| - parameter_definitions_emitter, attr, 0, adapter_name='value') |
| + parameter_definitions_emitter, attr, 0, argument_name='value') |
| arguments.append(argument_expression) |
| parameter_definitions = parameter_definitions_emitter.Fragments() |
| @@ -703,7 +703,7 @@ class NativeImplementationGenerator(systemwrapping.WrappingInterfaceGenerator): |
| if raises_exceptions: |
| body = emitter.Format( |
| - ' Dart_Handle exception;\n' |
| + ' Dart_Handle exception = 0;\n' |
| '$BODY' |
| '\n' |
| 'fail:\n' |
| @@ -722,35 +722,14 @@ class NativeImplementationGenerator(systemwrapping.WrappingInterfaceGenerator): |
| BODY=body) |
| def _GenerateParameterAdapter(self, emitter, idl_node, index, |
|
Anton Muhin
2012/05/04 12:30:50
should it still be named _GenerateParameterAdapter
|
| - adapter_name=None): |
| + argument_name=None): |
| """idl_node is IDLArgument or IDLAttribute.""" |
| type_info = GetIDLTypeInfo(idl_node.type.id) |
| - (adapter_type, include_name) = type_info.parameter_adapter_info() |
| - if include_name: |
| - self._cpp_impl_includes.add(include_name) |
| - adapter_name = adapter_name or idl_node.id |
| - flags = '' |
| - if (idl_node.ext_attrs.get('Optional') == 'DefaultIsNullString' or |
| - 'RequiredCppParameter' in idl_node.ext_attrs): |
| - flags = ', DartUtilities::ConvertNullToDefaultValue' |
| - emitter.Emit( |
| - '\n' |
| - ' const $ADAPTER_TYPE $NAME(Dart_GetNativeArgument(args, $INDEX)$FLAGS);\n' |
| - ' if (!$NAME.conversionSuccessful()) {\n' |
| - ' exception = $NAME.exception();\n' |
| - ' goto fail;\n' |
| - ' }\n', |
| - ADAPTER_TYPE=adapter_type, |
| - NAME=adapter_name, |
| - INDEX=index + 1, |
| - FLAGS=flags) |
| - |
| - conversion = '%s' |
| - if isinstance(type_info, SVGTearOffIDLTypeInfo) and not self._interface.id.endswith('List'): |
| - conversion = '%s.get()->propertyReference()' |
| - elif type_info.idl_type() == 'SVGMatrix' and self._interface.id == 'SVGTransformList': |
| - conversion = '%s.get()' |
| - return conversion % adapter_name |
| + if not IsPrimitiveType(idl_node.type.id): |
| + self._cpp_impl_includes.add('"Dart%s.h"' % type_info.idl_type()) |
| + argument_name = argument_name or idl_node.id |
| + handle = 'Dart_GetNativeArgument(args, %i)' % (index + 1) |
|
Anton Muhin
2012/05/04 12:30:50
I've submitted a change already, so you shouldn't
|
| + return type_info.emit_to_native(emitter, idl_node, argument_name, handle, self._interface.id) |
| def _GenerateNativeBinding(self, idl_name, argument_count, dart_declaration, |
| native_suffix, is_custom): |