summaryrefslogtreecommitdiff
path: root/src/libs/lvgl/src/lv_misc/lv_gc.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/lvgl/src/lv_misc/lv_gc.h')
-rw-r--r--src/libs/lvgl/src/lv_misc/lv_gc.h33
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
**********************/