diff options
| author | Damien George | 2016-12-09 12:58:45 +1100 |
|---|---|---|
| committer | Damien George | 2016-12-09 12:58:45 +1100 |
| commit | adf3cb50818636fdfb75e1a6a71b596565dcc90e (patch) | |
| tree | 88ffaa2bcfb29a5fd4905be006e523ae792e08bb | |
| parent | 5e393007b930359fbc42180ea4e4fb45b149af80 (diff) | |
extmod/modframebuf: Store underlying buffer object to prevent GC free.
| -rw-r--r-- | extmod/modframebuf.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/extmod/modframebuf.c b/extmod/modframebuf.c index eb639c172..d6e686e07 100644 --- a/extmod/modframebuf.c +++ b/extmod/modframebuf.c @@ -37,6 +37,7 @@ typedef struct _mp_obj_framebuf_t { mp_obj_base_t base; + mp_obj_t buf_obj; // need to store this to prevent GC from reclaiming buf void *buf; uint16_t width, height, stride; 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 mp_obj_framebuf_t *o = m_new_obj(mp_obj_framebuf_t); o->base.type = type; + o->buf_obj = args[0]; mp_buffer_info_t bufinfo; mp_get_buffer_raise(args[0], &bufinfo, MP_BUFFER_WRITE); |
