diff options
author | Jeff Epler <jepler@unpythonic.net> | 2025-10-04 19:03:47 -0500 |
---|---|---|
committer | Damien George <damien@micropython.org> | 2025-10-05 15:43:02 +1100 |
commit | 8013ef44db80f7fa941c4c404c848ba46cb1706b (patch) | |
tree | c1d357b9f0483d35c324210aa5b125e55220e65a /extmod/modwebsocket.c | |
parent | b94162b5dfe19ae1083a0bdf0611e07262fe8fe8 (diff) |
extmod/modwebsocket: Save a few bytes of text by using bit checks.
.. at least on x86_64 (unix standard build). Size was unchanged on
RPI_PICO_W.
Signed-off-by: Jeff Epler <jepler@unpythonic.net>
Diffstat (limited to 'extmod/modwebsocket.c')
-rw-r--r-- | extmod/modwebsocket.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/extmod/modwebsocket.c b/extmod/modwebsocket.c index 6640dbe42..6a35dc1db 100644 --- a/extmod/modwebsocket.c +++ b/extmod/modwebsocket.c @@ -143,13 +143,13 @@ static mp_uint_t websocket_read(mp_obj_t self_in, void *buf, mp_uint_t size, int } case FRAME_OPT: { - if ((self->buf_pos & 3) == 2) { - // First two bytes are message length + if (self->buf_pos & 2) { // to_recv was 2 or 6 + assert(self->buf_pos == 2 || self->buf_pos == 6); // First two bytes are message length. Technically the size must be at least 126 per RFC6455 // but MicroPython skips checking that. self->msg_sz = (self->buf[0] << 8) | self->buf[1]; } - if (self->buf_pos >= 4) { + if (self->buf_pos & 4) { // Last 4 bytes is mask memcpy(self->mask, self->buf + self->buf_pos - 4, 4); } |