| OLD | NEW |
| 1 # Copyright (C) 2013 Google Inc. All rights reserved. | 1 # Copyright (C) 2013 Google Inc. All rights reserved. |
| 2 # | 2 # |
| 3 # Redistribution and use in source and binary forms, with or without | 3 # Redistribution and use in source and binary forms, with or without |
| 4 # modification, are permitted provided that the following conditions are | 4 # modification, are permitted provided that the following conditions are |
| 5 # met: | 5 # met: |
| 6 # | 6 # |
| 7 # * Redistributions of source code must retain the above copyright | 7 # * Redistributions of source code must retain the above copyright |
| 8 # notice, this list of conditions and the following disclaimer. | 8 # notice, this list of conditions and the following disclaimer. |
| 9 # * Redistributions in binary form must reproduce the above | 9 # * Redistributions in binary form must reproduce the above |
| 10 # copyright notice, this list of conditions and the following disclaimer | 10 # copyright notice, this list of conditions and the following disclaimer |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 123 default_value = argument.default_cpp_value | 123 default_value = argument.default_cpp_value |
| 124 if context['has_default']: | 124 if context['has_default']: |
| 125 default_value = (argument.default_cpp_value or | 125 default_value = (argument.default_cpp_value or |
| 126 dart_types.default_cpp_value_for_cpp_type(idl_type)) | 126 dart_types.default_cpp_value_for_cpp_type(idl_type)) |
| 127 # FIXMEDART: handle the drift between preprocessed type names in 1847 and | 127 # FIXMEDART: handle the drift between preprocessed type names in 1847 and |
| 128 # 1985 dartium builds in a more generic way. | 128 # 1985 dartium builds in a more generic way. |
| 129 if preprocessed_type == 'unrestricted float': | 129 if preprocessed_type == 'unrestricted float': |
| 130 preprocessed_type = 'float' | 130 preprocessed_type = 'float' |
| 131 if preprocessed_type == 'unrestricted double': | 131 if preprocessed_type == 'unrestricted double': |
| 132 preprocessed_type = 'double' | 132 preprocessed_type = 'double' |
| 133 |
| 134 dart_enum_expression = idl_type.enum_validation_expression |
| 135 if dart_enum_expression: |
| 136 dart_enum_expression = dart_enum_expression.format(param_name=argument.n
ame) |
| 133 context.update({ | 137 context.update({ |
| 134 'cpp_type': idl_type.cpp_type_args(extended_attributes=extended_attribut
es, | 138 'cpp_type': idl_type.cpp_type_args(extended_attributes=extended_attribut
es, |
| 135 raw_type=True, | 139 raw_type=True, |
| 136 used_in_cpp_sequence=use_heap_vector_
type), | 140 used_in_cpp_sequence=use_heap_vector_
type), |
| 137 'cpp_value': this_cpp_value, | 141 'cpp_value': this_cpp_value, |
| 138 'local_cpp_type': local_cpp_type, | 142 'local_cpp_type': local_cpp_type, |
| 139 # FIXME: check that the default value's type is compatible with the argu
ment's | 143 # FIXME: check that the default value's type is compatible with the argu
ment's |
| 140 'default_value': default_value, | 144 'default_value': default_value, |
| 141 'enum_validation_expression': idl_type.enum_validation_expression, | 145 'enum_validation_expression': dart_enum_expression, |
| 142 'preprocessed_type': preprocessed_type, | 146 'preprocessed_type': preprocessed_type, |
| 143 'is_array_or_sequence_type': not not idl_type.native_array_element_type, | 147 'is_array_or_sequence_type': not not idl_type.native_array_element_type, |
| 144 'is_strict_type_checking': 'DartStrictTypeChecking' in extended_attribut
es, | 148 'is_strict_type_checking': 'DartStrictTypeChecking' in extended_attribut
es, |
| 145 'is_dictionary': idl_type.is_dictionary or idl_type.base_type == 'Dictio
nary', | 149 'is_dictionary': idl_type.is_dictionary or idl_type.base_type == 'Dictio
nary', |
| 146 'vector_type': 'WillBeHeapVector' if use_heap_vector_type else 'Vector', | 150 'vector_type': 'WillBeHeapVector' if use_heap_vector_type else 'Vector', |
| 147 'dart_set_return_value_for_main_world': dart_set_return_value(interface.
name, method, | 151 'dart_set_return_value_for_main_world': dart_set_return_value(interface.
name, method, |
| 148 this_cpp_v
alue, for_main_world=True), | 152 this_cpp_v
alue, for_main_world=True), |
| 149 'dart_set_return_value': dart_set_return_value(interface.name, method, t
his_cpp_value), | 153 'dart_set_return_value': dart_set_return_value(interface.name, method, t
his_cpp_value), |
| 150 'arg_index': arg_index, | 154 'arg_index': arg_index, |
| 151 'dart_value_dictionary_cpp_value': dart_dictionary_value_argument(argume
nt, arg_index), | 155 'dart_value_dictionary_cpp_value': dart_dictionary_value_argument(argume
nt, arg_index), |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 273 # There is also some logic in systemnative.py to force a null check | 277 # There is also some logic in systemnative.py to force a null check |
| 274 # for the useCapture argument of those same methods that we may need to | 278 # for the useCapture argument of those same methods that we may need to |
| 275 # pull over. | 279 # pull over. |
| 276 null_check = ((argument.is_optional and idl_type.is_callback_interface) or | 280 null_check = ((argument.is_optional and idl_type.is_callback_interface) or |
| 277 (idl_type.name == 'Dictionary') or | 281 (idl_type.name == 'Dictionary') or |
| 278 (argument.default_value and argument.default_value.is_null)) | 282 (argument.default_value and argument.default_value.is_null)) |
| 279 | 283 |
| 280 return idl_type.dart_value_to_local_cpp_value( | 284 return idl_type.dart_value_to_local_cpp_value( |
| 281 extended_attributes, name, null_check, has_type_checking_interface, | 285 extended_attributes, name, null_check, has_type_checking_interface, |
| 282 index=index, auto_scope=auto_scope) | 286 index=index, auto_scope=auto_scope) |
| OLD | NEW |