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

Unified Diff: Source/bindings/scripts/unstable/v8_types.py

Issue 173363002: Move mediastream module to oilpan transition types (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 10 months 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/unstable/v8_types.py
diff --git a/Source/bindings/scripts/unstable/v8_types.py b/Source/bindings/scripts/unstable/v8_types.py
index b08780ac4580bf9a6be7b824ad19307e51334a00..9d8412076fe85356076f8f7f20d8684e5fa78e4b 100644
--- a/Source/bindings/scripts/unstable/v8_types.py
+++ b/Source/bindings/scripts/unstable/v8_types.py
@@ -247,7 +247,8 @@ CPP_SPECIAL_CONVERSION_RULES = {
'boolean': 'bool',
}
-def cpp_type(idl_type, extended_attributes=None, used_as_argument=False):
+
+def cpp_type(idl_type, extended_attributes=None, used_as_argument=False, used_as_member=False):
haraken 2014/02/27 15:32:43 Is |used_as_member| necessary?
Nils Barth (inactive) 2014/03/03 02:47:53 Keishi, could you add some documentation to the do
"""Returns C++ type corresponding to IDL type."""
def string_mode():
# FIXME: the Web IDL spec requires 'EmptyString', not 'NullString',
@@ -282,6 +283,8 @@ def cpp_type(idl_type, extended_attributes=None, used_as_argument=False):
for union_member_type in idl_type.union_member_types)
this_array_or_sequence_type = array_or_sequence_type(idl_type)
if this_array_or_sequence_type:
+ if is_will_be_garbage_collected(this_array_or_sequence_type):
+ return cpp_template_type('WillBeHeapVector', cpp_type(this_array_or_sequence_type, used_as_member=True))
haraken 2014/02/27 15:32:43 I don't quite understand that you're adding |used_
Nils Barth (inactive) 2014/03/03 02:47:53 ? Keishi's code makes sense AFAICT; it's using |us
return cpp_template_type('Vector', cpp_type(this_array_or_sequence_type))
if is_typed_array_type(idl_type) and used_as_argument:
@@ -291,6 +294,8 @@ def cpp_type(idl_type, extended_attributes=None, used_as_argument=False):
if used_as_argument:
return implemented_as_class + '*'
if is_will_be_garbage_collected(idl_type):
+ if used_as_member:
+ return cpp_template_type('RefPtrWillBeMember', implemented_as_class)
return cpp_template_type('RefPtrWillBeRawPtr', implemented_as_class)
return cpp_template_type('RefPtr', implemented_as_class)
# Default, assume native type is a pointer with same type name as idl type
@@ -469,7 +474,10 @@ def v8_value_to_cpp_value_array_or_sequence(this_array_or_sequence_type, v8_valu
if (is_interface_type(this_array_or_sequence_type) and
this_array_or_sequence_type != 'Dictionary'):
this_cpp_type = None
- expression_format = '(toRefPtrNativeArray<{array_or_sequence_type}, V8{array_or_sequence_type}>({v8_value}, {index}, info.GetIsolate()))'
+ if is_will_be_garbage_collected(this_array_or_sequence_type):
+ expression_format = '(toMemberNativeArray<{array_or_sequence_type}, V8{array_or_sequence_type}>({v8_value}, {index}, info.GetIsolate()))'
sof 2014/03/02 20:10:55 To my eyes, it would read better if you instead cr
+ else:
+ expression_format = '(toRefPtrNativeArray<{array_or_sequence_type}, V8{array_or_sequence_type}>({v8_value}, {index}, info.GetIsolate()))'
add_includes_for_type(this_array_or_sequence_type)
else:
this_cpp_type = cpp_type(this_array_or_sequence_type)

Powered by Google App Engine
This is Rietveld 408576698