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

Unified Diff: third_party/mojo/src/mojo/public/tools/bindings/generators/mojom_go_generator.py

Issue 975973002: Update mojo sdk to rev f68e697e389943cd9bf9652397312280e96b127a (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: shake fist at msvc Created 5 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: third_party/mojo/src/mojo/public/tools/bindings/generators/mojom_go_generator.py
diff --git a/third_party/mojo/src/mojo/public/tools/bindings/generators/mojom_go_generator.py b/third_party/mojo/src/mojo/public/tools/bindings/generators/mojom_go_generator.py
index bdcb84f65a340e16a6a5c33b5602d105c90d14e1..cb5a16e7f2a847be87d0cea2d6fd34dc6ccc54df 100644
--- a/third_party/mojo/src/mojo/public/tools/bindings/generators/mojom_go_generator.py
+++ b/third_party/mojo/src/mojo/public/tools/bindings/generators/mojom_go_generator.py
@@ -86,8 +86,10 @@ def GetNonNullableGoType(kind):
return '[]%s' % GetGoType(kind.kind)
if mojom.IsMapKind(kind):
return 'map[%s]%s' % (GetGoType(kind.key_kind), GetGoType(kind.value_kind))
- if mojom.IsInterfaceKind(kind) or mojom.IsInterfaceRequestKind(kind):
- return GetGoType(mojom.MSGPIPE)
+ if mojom.IsInterfaceKind(kind):
+ return '%sPointer' % GetFullName(kind)
+ if mojom.IsInterfaceRequestKind(kind):
+ return '%sRequest' % GetFullName(kind.kind)
if mojom.IsEnumKind(kind):
return GetNameForNestedElement(kind)
return _kind_infos[kind].go_type
@@ -223,9 +225,14 @@ def GetAllEnums(module):
# Adds an import required to use the provided |element|.
# The required import is stored at '_imports'.
def AddImport(module, element):
- if not hasattr(element, 'imported_from') or not element.imported_from:
+ if (isinstance(element, mojom.Kind) and
+ mojom.IsNonInterfaceHandleKind(element)):
+ _imports['mojo/public/go/system'] = 'system'
return
- if isinstance(element, mojom.Kind) and mojom.IsAnyHandleKind(element):
+ if isinstance(element, mojom.Kind) and mojom.IsInterfaceRequestKind(element):
+ AddImport(module, element.kind)
+ return
+ if not hasattr(element, 'imported_from') or not element.imported_from:
return
imported = element.imported_from
if imported['namespace'] == module.namespace:
@@ -246,13 +253,12 @@ def GetImports(module):
# Imports can only be used in structs, constants, enums, interfaces.
all_structs = list(module.structs)
for i in module.interfaces:
- AddImport(module, i)
for method in i.methods:
all_structs.append(GetStructFromMethod(method))
if method.response_parameters:
all_structs.append(GetResponseStructFromMethod(method))
- if len(all_structs) > 0:
+ if len(all_structs) > 0 or len(module.interfaces) > 0:
_imports['mojo/public/go/bindings'] = 'bindings'
for struct in all_structs:
for field in struct.fields:
@@ -289,6 +295,8 @@ class Generator(generator.Generator):
'is_array': mojom.IsArrayKind,
'is_enum': mojom.IsEnumKind,
'is_handle': mojom.IsAnyHandleKind,
+ 'is_handle_owner': lambda kind:
+ mojom.IsInterfaceKind(kind) or mojom.IsInterfaceRequestKind(kind),
'is_map': mojom.IsMapKind,
'is_none_or_empty': lambda array: array == None or len(array) == 0,
'is_nullable': mojom.IsNullableKind,

Powered by Google App Engine
This is Rietveld 408576698