diff --git a/pycardium/modules/sys_display.c b/pycardium/modules/sys_display.c index fa416dc66cb6f45e43828a89246f1c3408faab64..eedeb705e12531d3ddf46a153abafbe8adebca0a 100644 --- a/pycardium/modules/sys_display.c +++ b/pycardium/modules/sys_display.c @@ -119,7 +119,7 @@ static mp_obj_t mp_display_blit(size_t n_args, const mp_obj_t *args) mp_raise_ValueError("'img' is too small."); } - uint16_t *buf; + uint16_t *buf = NULL; if (rgb565) { buf = (uint16_t *)img.buf; } else { @@ -150,6 +150,10 @@ static mp_obj_t mp_display_blit(size_t n_args, const mp_obj_t *args) res = epic_disp_blit(pos_x, pos_y, width, height, buf, NULL); } + if (buf) { + m_free(buf); + } + if (res < 0) { mp_raise_OSError(-res); }