summaryrefslogtreecommitdiff
path: root/extmod/modwebsocket.c
diff options
context:
space:
mode:
authorJeff Epler <jepler@unpythonic.net>2025-10-04 19:03:47 -0500
committerDamien George <damien@micropython.org>2025-10-05 15:43:02 +1100
commit8013ef44db80f7fa941c4c404c848ba46cb1706b (patch)
treec1d357b9f0483d35c324210aa5b125e55220e65a /extmod/modwebsocket.c
parentb94162b5dfe19ae1083a0bdf0611e07262fe8fe8 (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.c6
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);
}