jlzql
December 16, 2020, 10:29am
1
Description
what to do do clean user data.
What MCU/Processor/Board and compiler are you using?
STM32H7 serie
What LVGL version are you using?
7.8.1 DEV
Question
is it important to implement to free user data function ( i dont use it now ).
What is the impact if i dont implement it ?
How should i do it if needed it ?
My custom data type is void* and i always pass the same struct to it
struct param_s{
float value;
int32_t valueInt;
float asign;
lv_obj_t *myobj;
};
The impact depends on what your user data is. If it’s being allocated from a heap, it’ll slowly continue using up memory as you create objects till memory runs out. In general, if it’s possible to free anything you are not using, do so.
jlzql
December 16, 2020, 1:51pm
3
so my user data type is void pointer.
And i pass a pointer to a static structure to it.
How should i clean it ?
If the structure is static (not allocated dynamically), there is no need to free it.
jlzql
December 16, 2020, 1:58pm
5
Here is structure i pass as pointer
struct param_s param{
float num1;
float num2;
}
struct data_t{
lv_obj_t * arc;
lv_obj_t * label;
lv_obj_t * labelVal;
struct param_s *param;
lv_obj_t * knob;
};
.
.
.
struct data_t myData;
lv_obj_set_user_data(pot_t->arc, (void*)&myData);