Index: sky/engine/bindings/mojo_natives.cc |
diff --git a/sky/engine/bindings/mojo_natives.cc b/sky/engine/bindings/mojo_natives.cc |
index 25faf767fdcd3be99c61814d5595457357400601..c67f71a771590b4cb2ec4ff00a74fe0a76746454 100644 |
--- a/sky/engine/bindings/mojo_natives.cc |
+++ b/sky/engine/bindings/mojo_natives.cc |
@@ -716,7 +716,7 @@ void MojoHandleWatcher_SendControlData(Dart_NativeArguments arguments) { |
CHECK_INTEGER_ARGUMENT(arguments, 1, &client_handle, InvalidArgument); |
Dart_Handle send_port_handle = Dart_GetNativeArgument(arguments, 2); |
- Dart_Port send_port_id = 0; |
+ Dart_Port send_port_id = ILLEGAL_PORT; |
if (!Dart_IsNull(send_port_handle)) { |
Dart_Handle result = Dart_SendPortGetId(send_port_handle, &send_port_id); |
if (Dart_IsError(result)) { |
@@ -755,7 +755,9 @@ void MojoHandleWatcher_RecvControlData(Dart_NativeArguments arguments) { |
Dart_Handle list = Dart_NewList(3); |
Dart_ListSetAt(list, 0, Dart_NewInteger(cd.handle)); |
- Dart_ListSetAt(list, 1, Dart_NewSendPort(cd.port)); |
+ if (cd.port != ILLEGAL_PORT) { |
+ Dart_ListSetAt(list, 1, Dart_NewSendPort(cd.port)); |
+ } |
Dart_ListSetAt(list, 2, Dart_NewInteger(cd.data)); |
Dart_SetReturnValue(arguments, list); |
} |