Index: mojom/generators/go/templates/encoding.go |
diff --git a/mojom/generators/go/templates/encoding.go b/mojom/generators/go/templates/encoding.go |
index b002d15e85737e59a2be55069948f4086707103a..c201bf406a0f61f51fc0705102f4caa17050401e 100644 |
--- a/mojom/generators/go/templates/encoding.go |
+++ b/mojom/generators/go/templates/encoding.go |
@@ -15,8 +15,10 @@ const fieldEncodingTmplText = ` |
if {{$info.Identifier}} == nil { |
{{- if $info.IsPointer -}} |
encoder.WriteNullPointer() |
-{{- else if $info.IsHandle -}} |
+{{- else if or $info.IsInterfaceRequest $info.IsHandle -}} |
encoder.WriteInvalidHandle() |
+{{- else if $info.IsInterface -}} |
+ encoder.WriteInvalidInterface() |
{{- end -}} |
} else { |
{{ template "NonNullableFieldEncodingTmpl" $info }} |
@@ -70,6 +72,10 @@ if {{$info.Identifier}} == nil { |
return err |
} |
} |
+{{- else if $info.IsInterface -}} |
+if err := encoder.{{$info.WriteFunction}}({{$info.Identifier}}.PassMessagePipe()); err != nil { |
+ return err |
+} |
{{- else if $info.IsArray -}} |
{{ $elInfo := $info.ElementEncodingInfo -}} |
encoder.StartArray(uint32(len({{$info.Identifier}})), {{$elInfo.BitSize}}) |