Commit adf3cb50 authored by Damien George's avatar Damien George
Browse files

extmod/modframebuf: Store underlying buffer object to prevent GC free.

parent 5e393007
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
typedef struct _mp_obj_framebuf_t { typedef struct _mp_obj_framebuf_t {
mp_obj_base_t base; mp_obj_base_t base;
mp_obj_t buf_obj; // need to store this to prevent GC from reclaiming buf
void *buf; void *buf;
uint16_t width, height, stride; uint16_t width, height, stride;
uint8_t format; uint8_t format;
...@@ -133,6 +134,7 @@ STATIC mp_obj_t framebuf_make_new(const mp_obj_type_t *type, size_t n_args, size ...@@ -133,6 +134,7 @@ STATIC mp_obj_t framebuf_make_new(const mp_obj_type_t *type, size_t n_args, size
mp_obj_framebuf_t *o = m_new_obj(mp_obj_framebuf_t); mp_obj_framebuf_t *o = m_new_obj(mp_obj_framebuf_t);
o->base.type = type; o->base.type = type;
o->buf_obj = args[0];
mp_buffer_info_t bufinfo; mp_buffer_info_t bufinfo;
mp_get_buffer_raise(args[0], &bufinfo, MP_BUFFER_WRITE); mp_get_buffer_raise(args[0], &bufinfo, MP_BUFFER_WRITE);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment