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

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

Issue 151173004: IDL compiler: [GarbageCollected] on other interface (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Reupload 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 5066aaa0d0b8906ba60f578f5d62514f7e3bec3f..ecd99d8d8bc7b2eb84e893fa5ee0e945a82f0634 100644
--- a/Source/bindings/scripts/unstable/v8_types.py
+++ b/Source/bindings/scripts/unstable/v8_types.py
@@ -289,6 +289,8 @@ def cpp_type(idl_type, extended_attributes=None, used_as_argument=False):
implemented_as_class = implemented_as(idl_type)
if used_as_argument:
return implemented_as_class + '*'
+ if is_garbage_collected(idl_type):
+ 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
return idl_type + '*'
@@ -307,6 +309,18 @@ def v8_type(interface_type):
return 'V8' + interface_type
+# [GarbageCollected]
+garbage_collected_types = set()
+
+
+def is_garbage_collected(idl_type):
+ return idl_type in garbage_collected_types
+
+
+def set_garbage_collected_types(new_garbage_collected_types):
+ garbage_collected_types.update(new_garbage_collected_types)
+
+
# [ImplementedAs]
# This handles [ImplementedAs] on interface types, not [ImplementedAs] in the
# interface being generated. e.g., given:

Powered by Google App Engine
This is Rietveld 408576698