diff options
Diffstat (limited to 'src/libs/lvgl/src/lv_misc/lv_gc.h')
-rw-r--r-- | src/libs/lvgl/src/lv_misc/lv_gc.h | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/src/libs/lvgl/src/lv_misc/lv_gc.h b/src/libs/lvgl/src/lv_misc/lv_gc.h index 0db9f5cb..afd4d600 100644 --- a/src/libs/lvgl/src/lv_misc/lv_gc.h +++ b/src/libs/lvgl/src/lv_misc/lv_gc.h @@ -30,21 +30,21 @@ extern "C" { * DEFINES *********************/ -#define LV_GC_ROOTS(prefix) \ - prefix lv_ll_t _lv_task_ll; /*Linked list to store the lv_tasks*/ \ - prefix lv_ll_t _lv_disp_ll; /*Linked list of screens*/ \ - prefix lv_ll_t _lv_indev_ll; /*Linked list of screens*/ \ - prefix lv_ll_t _lv_drv_ll; \ - prefix lv_ll_t _lv_file_ll; \ - prefix lv_ll_t _lv_anim_ll; \ - prefix lv_ll_t _lv_group_ll; \ - prefix lv_ll_t _lv_img_defoder_ll; \ - prefix lv_img_cache_entry_t * _lv_img_cache_array; \ - prefix void * _lv_task_act; \ - prefix void * _lv_draw_buf; +#define LV_ITERATE_ROOTS(f) \ + f(lv_ll_t, _lv_task_ll) /*Linked list to store the lv_tasks*/ \ + f(lv_ll_t, _lv_disp_ll) /*Linked list of screens*/ \ + f(lv_ll_t, _lv_indev_ll) /*Linked list of screens*/ \ + f(lv_ll_t, _lv_drv_ll) \ + f(lv_ll_t, _lv_file_ll) \ + f(lv_ll_t, _lv_anim_ll) \ + f(lv_ll_t, _lv_group_ll) \ + f(lv_ll_t, _lv_img_defoder_ll) \ + f(lv_img_cache_entry_t*, _lv_img_cache_array) \ + f(void*, _lv_task_act) \ + f(void*, _lv_draw_buf) -#define LV_NO_PREFIX -#define LV_ROOTS LV_GC_ROOTS(LV_NO_PREFIX) +#define LV_DEFINE_ROOT(root_type, root_name) root_type root_name; +#define LV_ROOTS LV_ITERATE_ROOTS(LV_DEFINE_ROOT) #if LV_ENABLE_GC == 1 #if LV_MEM_CUSTOM != 1 @@ -52,7 +52,8 @@ extern "C" { #endif /* LV_MEM_CUSTOM */ #else /* LV_ENABLE_GC */ #define LV_GC_ROOT(x) x -LV_GC_ROOTS(extern) +#define LV_EXTERN_ROOT(root_type, root_name) extern root_type root_name; +LV_ITERATE_ROOTS(LV_EXTERN_ROOT) #endif /* LV_ENABLE_GC */ /********************** @@ -63,6 +64,8 @@ LV_GC_ROOTS(extern) * GLOBAL PROTOTYPES **********************/ +void lv_gc_clear_roots(void); + /********************** * MACROS **********************/ |