From adf3cb50818636fdfb75e1a6a71b596565dcc90e Mon Sep 17 00:00:00 2001
From: Damien George <damien.p.george@gmail.com>
Date: Fri, 9 Dec 2016 12:58:45 +1100
Subject: [PATCH] extmod/modframebuf: Store underlying buffer object to prevent
 GC free.

---
 extmod/modframebuf.c | 2 ++
 1 file changed, 2 insertions(+)

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);
-- 
GitLab