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

Unified Diff: third_party/WebKit/Source/bindings/scripts/v8_dictionary.py

Issue 2471393004: bindings: Use forward declarations for wrapper types in dictionary_impl (Closed)
Patch Set: Added copy operator Created 4 years, 1 month 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: third_party/WebKit/Source/bindings/scripts/v8_dictionary.py
diff --git a/third_party/WebKit/Source/bindings/scripts/v8_dictionary.py b/third_party/WebKit/Source/bindings/scripts/v8_dictionary.py
index e15f60fd1fc55112932437faa5a18558dfe10ecd..4163923cca55106d3eaad039c7f5b763c493ca16 100644
--- a/third_party/WebKit/Source/bindings/scripts/v8_dictionary.py
+++ b/third_party/WebKit/Source/bindings/scripts/v8_dictionary.py
@@ -161,11 +161,14 @@ def dictionary_impl_context(dictionary, interfaces_info):
return sorted(members_dict.values(), key=lambda member: member['cpp_name'])
includes.clear()
+ header_forward_decls = set()
header_includes = set(['platform/heap/Handle.h'])
- members = [member_impl_context(member, interfaces_info, header_includes)
+ members = [member_impl_context(member, interfaces_info,
+ header_includes, header_forward_decls)
for member in dictionary.members]
members = remove_duplicate_members(members)
context = {
+ 'header_forward_decls': header_forward_decls,
'header_includes': header_includes,
'cpp_class': v8_utilities.cpp_name(dictionary),
'members': members,
@@ -184,7 +187,8 @@ def dictionary_impl_context(dictionary, interfaces_info):
return context
-def member_impl_context(member, interfaces_info, header_includes):
+def member_impl_context(member, interfaces_info, header_includes,
+ header_forward_decls):
idl_type = unwrap_nullable_if_needed(member.idl_type)
cpp_name = v8_utilities.cpp_name(member)
@@ -208,7 +212,13 @@ def member_impl_context(member, interfaces_info, header_includes):
if member.default_value and not member.default_value.is_null:
cpp_default_value = idl_type.literal_cpp_value(member.default_value)
- header_includes.update(idl_type.impl_includes_for_type(interfaces_info))
+ forward_decl_name = idl_type.impl_forward_declaration_name
+ if forward_decl_name:
+ includes.update(idl_type.impl_includes_for_type(interfaces_info))
+ header_forward_decls.add(forward_decl_name)
+ else:
+ header_includes.update(idl_type.impl_includes_for_type(interfaces_info))
+
return {
'cpp_default_value': cpp_default_value,
'cpp_name': cpp_name,

Powered by Google App Engine
This is Rietveld 408576698