Fix invalid call to Dart_NewSendPort with port id 0 in dart controller
BUG=
R=zra@google.com
Review URL: https://codereview.chromium.org/1060993005
diff --git a/mojo/dart/embedder/mojo_natives.cc b/mojo/dart/embedder/mojo_natives.cc
index 028f57a..8f1e7c5 100644
--- a/mojo/dart/embedder/mojo_natives.cc
+++ b/mojo/dart/embedder/mojo_natives.cc
@@ -729,7 +729,7 @@
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)) {
@@ -768,7 +768,9 @@
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);
}