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

Unified Diff: Source/bindings/scripts/idl_definitions.py

Issue 670663002: IDL: Use IdlReader to compute interface_info_individual (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebase Created 6 years, 2 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/idl_definitions.py
diff --git a/Source/bindings/scripts/idl_definitions.py b/Source/bindings/scripts/idl_definitions.py
index 6ab669689276be08507046f72c8ec865c7870e1d..d4a22ce4255ae5f8813c8560638651c1ac6a55d0 100644
--- a/Source/bindings/scripts/idl_definitions.py
+++ b/Source/bindings/scripts/idl_definitions.py
@@ -57,6 +57,8 @@ IdlDefinitions
TypedObject :: mixin for typedef resolution
+IdlArgument is 'picklable', as it is stored in interfaces_info.
+
Design doc: http://www.chromium.org/developers/design-documents/idl-compiler
"""
@@ -105,6 +107,7 @@ class IdlDefinitions(object):
self.callback_functions = {}
self.dictionaries = {}
self.enumerations = {}
+ self.implements = []
self.interfaces = {}
self.idl_name = idl_name
@@ -136,8 +139,7 @@ class IdlDefinitions(object):
callback_function = IdlCallbackFunction(idl_name, child)
self.callback_functions[callback_function.name] = callback_function
elif child_class == 'Implements':
- # Implements is handled at the interface merging step
- pass
+ self.implements.append(IdlImplement(child))
elif child_class == 'Dictionary':
dictionary = IdlDictionary(idl_name, child)
self.dictionaries[dictionary.name] = dictionary
@@ -590,6 +592,14 @@ class IdlArgument(TypedObject):
else:
raise ValueError('Unrecognized node class: %s' % child_class)
+ def __getstate__(self):
+ # FIXME: Return a picklable object which has enough information to
+ # unpickle.
+ return {}
+
+ def __setstate__(self, state):
+ pass
+
def arguments_node_to_arguments(idl_name, node):
# [Constructor] and [CustomConstructor] without arguments (the bare form)
@@ -634,6 +644,16 @@ class IdlStringifier(object):
################################################################################
+# Implement statements
+################################################################################
+
+class IdlImplement(object):
+ def __init__(self, node):
+ self.left_interface = node.GetName()
+ self.right_interface = node.GetProperty('REFERENCE')
+
+
+################################################################################
# Extended attributes
################################################################################

Powered by Google App Engine
This is Rietveld 408576698