diff options
author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2015-10-27 01:26:05 +0300 |
---|---|---|
committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2015-10-27 01:39:57 +0300 |
commit | fa87e90cfad8887e58f70d0ca0ae771c57c60a29 (patch) | |
tree | b78b4cdb9b9e4d61606f5cbda1275fc591548298 | |
parent | 76217064ac13433ffe932db1c315e0303a66765b (diff) | |
download | micropython-fa87e90cfad8887e58f70d0ca0ae771c57c60a29.tar.gz micropython-fa87e90cfad8887e58f70d0ca0ae771c57c60a29.zip |
extmod/modlwip: lwip_tcp_send(): Common subexpression elimination, use MIN().
-rw-r--r-- | extmod/modlwip.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/extmod/modlwip.c b/extmod/modlwip.c index 6d9d240329..85f39a6177 100644 --- a/extmod/modlwip.c +++ b/extmod/modlwip.c @@ -353,18 +353,19 @@ STATIC mp_uint_t lwip_udp_receive(lwip_socket_obj_t *socket, byte *buf, mp_uint_ } // Helper function for send/sendto to handle TCP packets -STATIC mp_uint_t lwip_tcp_send(lwip_socket_obj_t *socket, const byte *buf, mp_uint_t - len, int *_errno) { - u16_t available = tcp_sndbuf((struct tcp_pcb *)socket->pcb); +STATIC mp_uint_t lwip_tcp_send(lwip_socket_obj_t *socket, const byte *buf, mp_uint_t len, int *_errno) { + struct tcp_pcb *pcb = (struct tcp_pcb *)socket->pcb; + u16_t available = tcp_sndbuf(pcb); + u16_t write_len = MIN(available, len); - err_t err = tcp_write((struct tcp_pcb *)socket->pcb, buf, (available > len ? len : available), TCP_WRITE_FLAG_COPY); + err_t err = tcp_write(pcb, buf, write_len, TCP_WRITE_FLAG_COPY); if (err != ERR_OK) { *_errno = error_lookup_table[-err]; return -1; } - return available > len ? len : available; + return write_len; } // Helper function for recv/recvfrom to handle TCP packets |