summaryrefslogtreecommitdiff
path: root/extmod/modframebuf.c
diff options
context:
space:
mode:
authorJim Mussared <jim.mussared@gmail.com>2023-10-04 22:33:14 +1100
committerDamien George <damien@micropython.org>2023-10-16 12:18:08 +1100
commit03a9fa227d323da7b239a1ef3fa84b0ef45a1621 (patch)
treeeed9378d0c534e6c0dcf65c094cf0809ba2fe69f /extmod/modframebuf.c
parentd040478d8aad7a05aac98651ec6ac5c2e9265a22 (diff)
extmod/modframebuf: Fix FrameBuffer get-buffer implementation.
This wasn't correctly accounting for the bits-per-pixel and was returning a bufinfo struct with the incorrect length. Instead, just forward directly to the underlying buffer object. Fixes issue #12563. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
Diffstat (limited to 'extmod/modframebuf.c')
-rw-r--r--extmod/modframebuf.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/extmod/modframebuf.c b/extmod/modframebuf.c
index eabe81997..c62ac4fe3 100644
--- a/extmod/modframebuf.c
+++ b/extmod/modframebuf.c
@@ -336,12 +336,8 @@ STATIC void framebuf_args(const mp_obj_t *args_in, mp_int_t *args_out, int n) {
}
STATIC mp_int_t framebuf_get_buffer(mp_obj_t self_in, mp_buffer_info_t *bufinfo, mp_uint_t flags) {
- (void)flags;
mp_obj_framebuf_t *self = MP_OBJ_TO_PTR(self_in);
- bufinfo->buf = self->buf;
- bufinfo->len = self->stride * self->height * (self->format == FRAMEBUF_RGB565 ? 2 : 1);
- bufinfo->typecode = 'B'; // view framebuf as bytes
- return 0;
+ return mp_get_buffer(self->buf_obj, bufinfo, flags) ? 0 : 1;
}
STATIC mp_obj_t framebuf_fill(mp_obj_t self_in, mp_obj_t col_in) {