Index: runtime/bin/socket.cc |
diff --git a/runtime/bin/socket.cc b/runtime/bin/socket.cc |
index dfde8f3e8434d8ab03af79e5afc1101628d572ee..da73f8d790e64c1b77ba38203032984a0799c98f 100644 |
--- a/runtime/bin/socket.cc |
+++ b/runtime/bin/socket.cc |
@@ -29,7 +29,8 @@ void FUNCTION_NAME(Socket_CreateConnect)(Dart_NativeArguments args) { |
if (DartUtils::GetInt64Value(Dart_GetNativeArgument(args, 2), &port)) { |
intptr_t socket = Socket::CreateConnect(host, port); |
if (socket >= 0) { |
- Socket::SetSocketIdNativeField(socket_obj, socket); |
+ Dart_Handle err = Socket::SetSocketIdNativeField(socket_obj, socket); |
+ if (Dart_IsError(err)) Dart_PropagateError(err); |
Dart_SetReturnValue(args, Dart_True()); |
} else { |
Dart_SetReturnValue(args, DartUtils::NewDartOSError()); |
@@ -48,7 +49,8 @@ void FUNCTION_NAME(Socket_Available)(Dart_NativeArguments args) { |
Dart_EnterScope(); |
Dart_Handle socket_obj = Dart_GetNativeArgument(args, 0); |
intptr_t socket = 0; |
- Socket::GetSocketIdNativeField(socket_obj, &socket); |
+ Dart_Handle err = Socket::GetSocketIdNativeField(socket_obj, &socket); |
+ if (Dart_IsError(err)) Dart_PropagateError(err); |
intptr_t available = Socket::Available(socket); |
if (available >= 0) { |
Dart_SetReturnValue(args, Dart_NewInteger(available)); |
@@ -63,7 +65,8 @@ void FUNCTION_NAME(Socket_Read)(Dart_NativeArguments args) { |
Dart_EnterScope(); |
Dart_Handle socket_obj = Dart_GetNativeArgument(args, 0); |
intptr_t socket = 0; |
- Socket::GetSocketIdNativeField(socket_obj, &socket); |
+ Dart_Handle err = Socket::GetSocketIdNativeField(socket_obj, &socket); |
+ if (Dart_IsError(err)) Dart_PropagateError(err); |
intptr_t available = Socket::Available(socket); |
if (available > 0) { |
int64_t length = 0; |
@@ -110,7 +113,8 @@ void FUNCTION_NAME(Socket_ReadList)(Dart_NativeArguments args) { |
static bool short_socket_reads = Dart_IsVMFlagSet("short_socket_read"); |
Dart_Handle socket_obj = Dart_GetNativeArgument(args, 0); |
intptr_t socket = 0; |
- Socket::GetSocketIdNativeField(socket_obj, &socket); |
+ Dart_Handle err = Socket::GetSocketIdNativeField(socket_obj, &socket); |
+ if (Dart_IsError(err)) Dart_PropagateError(err); |
Dart_Handle buffer_obj = Dart_GetNativeArgument(args, 1); |
int64_t offset = 0; |
int64_t length = 0; |
@@ -160,7 +164,8 @@ void FUNCTION_NAME(Socket_WriteList)(Dart_NativeArguments args) { |
static bool short_socket_writes = Dart_IsVMFlagSet("short_socket_write"); |
Dart_Handle socket_obj = Dart_GetNativeArgument(args, 0); |
intptr_t socket = 0; |
- Socket::GetSocketIdNativeField(socket_obj, &socket); |
+ Dart_Handle err = Socket::GetSocketIdNativeField(socket_obj, &socket); |
+ if (Dart_IsError(err)) Dart_PropagateError(err); |
Dart_Handle buffer_obj = Dart_GetNativeArgument(args, 1); |
ASSERT(Dart_IsList(buffer_obj)); |
intptr_t offset = |
@@ -186,7 +191,7 @@ void FUNCTION_NAME(Socket_WriteList)(Dart_NativeArguments args) { |
if (Dart_IsError(result)) { |
Dart_PropagateError(result); |
} |
- buffer = static_cast<void*>((static_cast<uint8_t*>(buffer) + offset)); |
+ buffer = static_cast<void*>(static_cast<uint8_t*>(buffer) + offset); |
bytes_written = Socket::Write(socket, buffer, length); |
if (bytes_written > 0) total_bytes_written = bytes_written; |
} else { |
@@ -224,7 +229,8 @@ void FUNCTION_NAME(Socket_GetPort)(Dart_NativeArguments args) { |
Dart_EnterScope(); |
Dart_Handle socket_obj = Dart_GetNativeArgument(args, 0); |
intptr_t socket = 0; |
- Socket::GetSocketIdNativeField(socket_obj, &socket); |
+ Dart_Handle err = Socket::GetSocketIdNativeField(socket_obj, &socket); |
+ if (Dart_IsError(err)) Dart_PropagateError(err); |
OSError os_error; |
intptr_t port = Socket::GetPort(socket); |
if (port > 0) { |
@@ -240,7 +246,8 @@ void FUNCTION_NAME(Socket_GetRemotePeer)(Dart_NativeArguments args) { |
Dart_EnterScope(); |
Dart_Handle socket_obj = Dart_GetNativeArgument(args, 0); |
intptr_t socket = 0; |
- Socket::GetSocketIdNativeField(socket_obj, &socket); |
+ Dart_Handle err = Socket::GetSocketIdNativeField(socket_obj, &socket); |
+ if (Dart_IsError(err)) Dart_PropagateError(err); |
OSError os_error; |
intptr_t port = 0; |
char host[INET_ADDRSTRLEN]; |
@@ -260,7 +267,8 @@ void FUNCTION_NAME(Socket_GetError)(Dart_NativeArguments args) { |
Dart_EnterScope(); |
Dart_Handle socket_obj = Dart_GetNativeArgument(args, 0); |
intptr_t socket = 0; |
- Socket::GetSocketIdNativeField(socket_obj, &socket); |
+ Dart_Handle err = Socket::GetSocketIdNativeField(socket_obj, &socket); |
+ if (Dart_IsError(err)) Dart_PropagateError(err); |
OSError os_error; |
Socket::GetError(socket, &os_error); |
Dart_SetReturnValue(args, DartUtils::NewDartOSError(&os_error)); |
@@ -291,7 +299,8 @@ void FUNCTION_NAME(Socket_GetStdioHandle)(Dart_NativeArguments args) { |
DartUtils::GetIntegerValue(Dart_GetNativeArgument(args, 1)); |
ASSERT(num == 0 || num == 1 || num == 2); |
intptr_t socket = Socket::GetStdioHandle(num); |
- Socket::SetSocketIdNativeField(socket_obj, socket); |
+ Dart_Handle err = Socket::SetSocketIdNativeField(socket_obj, socket); |
+ if (Dart_IsError(err)) Dart_PropagateError(err); |
Dart_SetReturnValue(args, Dart_NewBoolean(socket >= 0)); |
Dart_ExitScope(); |
} |
@@ -312,7 +321,8 @@ void FUNCTION_NAME(ServerSocket_CreateBindListen)(Dart_NativeArguments args) { |
intptr_t socket = |
ServerSocket::CreateBindListen(bind_address, port, backlog); |
if (socket >= 0) { |
- Socket::SetSocketIdNativeField(socket_obj, socket); |
+ Dart_Handle err = Socket::SetSocketIdNativeField(socket_obj, socket); |
+ if (Dart_IsError(err)) Dart_PropagateError(err); |
Dart_SetReturnValue(args, Dart_True()); |
} else { |
if (socket == -5) { |
@@ -336,11 +346,14 @@ void FUNCTION_NAME(ServerSocket_Accept)(Dart_NativeArguments args) { |
Dart_EnterScope(); |
Dart_Handle socket_obj = Dart_GetNativeArgument(args, 0); |
intptr_t socket = 0; |
- Socket::GetSocketIdNativeField(socket_obj, &socket); |
+ Dart_Handle err = Socket::GetSocketIdNativeField(socket_obj, &socket); |
+ if (Dart_IsError(err)) Dart_PropagateError(err); |
Dart_Handle result_socket_obj = Dart_GetNativeArgument(args, 1); |
intptr_t new_socket = ServerSocket::Accept(socket); |
if (new_socket >= 0) { |
- Socket::SetSocketIdNativeField(result_socket_obj, new_socket); |
+ Dart_Handle err = Socket::SetSocketIdNativeField(result_socket_obj, |
+ new_socket); |
+ if (Dart_IsError(err)) Dart_PropagateError(err); |
Dart_SetReturnValue(args, Dart_True()); |
} else if (new_socket == ServerSocket::kTemporaryFailure) { |
Dart_SetReturnValue(args, Dart_False()); |
@@ -374,7 +387,7 @@ static CObject* LookupRequest(const CObjectArray& request) { |
void SocketService(Dart_Port dest_port_id, |
Dart_Port reply_port_id, |
Dart_CObject* message) { |
- CObject* response = CObject::False(); |
+ CObject* response = CObject::IllegalArgumentError(); |
CObjectArray request(message); |
if (message->type == Dart_CObject::kArray) { |
if (request.Length() > 1 && request[0]->IsInt32()) { |