From c52aa1012898bca217e35f4d5e632e6f73667d25 Mon Sep 17 00:00:00 2001 From: yushuailong <1365570308@qq.com> Date: Sun, 18 Aug 2024 00:27:04 +0800 Subject: [PATCH] chore(display): prevent disp_refr from becoming a wild pointer (#6618) Signed-off-by: yushuailong1 Co-authored-by: yushuailong1 --- src/display/lv_display.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/display/lv_display.c b/src/display/lv_display.c index 169e3d9c43..df4bb9b278 100644 --- a/src/display/lv_display.c +++ b/src/display/lv_display.c @@ -158,7 +158,9 @@ lv_display_t * lv_display_create(int32_t hor_res, int32_t ver_res) void lv_display_delete(lv_display_t * disp) { bool was_default = false; + bool was_refr = false; if(disp == lv_display_get_default()) was_default = true; + if(disp == lv_refr_get_disp_refreshing()) was_refr = true; lv_display_send_event(disp, LV_EVENT_DELETE, NULL); lv_event_remove_all(&(disp->event_list)); @@ -205,6 +207,8 @@ void lv_display_delete(lv_display_t * disp) lv_free(disp); if(was_default) lv_display_set_default(lv_ll_get_head(disp_ll_p)); + + if(was_refr) lv_refr_set_disp_refreshing(NULL); } void lv_display_set_default(lv_display_t * disp)