|
|
@ -273,6 +273,7 @@ static void win_write(grpc_exec_ctx *exec_ctx, grpc_endpoint *ep, |
|
|
|
WSABUF local_buffers[16]; |
|
|
|
WSABUF local_buffers[16]; |
|
|
|
WSABUF *allocated = NULL; |
|
|
|
WSABUF *allocated = NULL; |
|
|
|
WSABUF *buffers = local_buffers; |
|
|
|
WSABUF *buffers = local_buffers; |
|
|
|
|
|
|
|
size_t len; |
|
|
|
|
|
|
|
|
|
|
|
if (tcp->shutting_down) { |
|
|
|
if (tcp->shutting_down) { |
|
|
|
grpc_exec_ctx_enqueue(exec_ctx, cb, 0); |
|
|
|
grpc_exec_ctx_enqueue(exec_ctx, cb, 0); |
|
|
@ -281,15 +282,16 @@ static void win_write(grpc_exec_ctx *exec_ctx, grpc_endpoint *ep, |
|
|
|
|
|
|
|
|
|
|
|
tcp->write_cb = cb; |
|
|
|
tcp->write_cb = cb; |
|
|
|
tcp->write_slices = slices; |
|
|
|
tcp->write_slices = slices; |
|
|
|
GPR_ASSERT(tcp->write_slices->count <= UINT32_MAX); |
|
|
|
GPR_ASSERT(tcp->write_slices->count <= UINT_MAX); |
|
|
|
if (tcp->write_slices->count > GPR_ARRAY_SIZE(local_buffers)) { |
|
|
|
if (tcp->write_slices->count > GPR_ARRAY_SIZE(local_buffers)) { |
|
|
|
buffers = (WSABUF *)gpr_malloc(sizeof(WSABUF) * tcp->write_slices->count); |
|
|
|
buffers = (WSABUF *)gpr_malloc(sizeof(WSABUF) * tcp->write_slices->count); |
|
|
|
allocated = buffers; |
|
|
|
allocated = buffers; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
for (i = 0; i < tcp->write_slices->count; i++) { |
|
|
|
for (i = 0; i < tcp->write_slices->count; i++) { |
|
|
|
GPR_ASSERT(GPR_SLICE_LENGTH(tcp->write_slices->slices[i]) <= UINT32_MAX); |
|
|
|
len = GPR_SLICE_LENGTH(tcp->write_slices->slices[i]); |
|
|
|
buffers[i].len = (ULONG) GPR_SLICE_LENGTH(tcp->write_slices->slices[i]); |
|
|
|
GPR_ASSERT(len <= ULONG_MAX); |
|
|
|
|
|
|
|
buffers[i].len = (ULONG) len; |
|
|
|
buffers[i].buf = (char *)GPR_SLICE_START_PTR(tcp->write_slices->slices[i]); |
|
|
|
buffers[i].buf = (char *)GPR_SLICE_START_PTR(tcp->write_slices->slices[i]); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|