mirror of
https://github.com/HASwitchPlate/openHASP.git
synced 2025-07-24 11:46:34 +00:00
Patch memory leak
This commit is contained in:
parent
0aece4f29f
commit
b3e7f6d0e3
@ -555,3 +555,14 @@ void cpicker_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
|
||||
// dispatch_normalized_group_value(obj->user_data.groupid, obj, val, min, max);
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when an object is deleted
|
||||
* @param obj pointer to a generic object
|
||||
* @param event type of event that occured
|
||||
*/
|
||||
void deleted_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
{
|
||||
uint8_t hasp_event_id;
|
||||
translate_event(obj, event, hasp_event_id);
|
||||
}
|
@ -18,6 +18,7 @@ void slider_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
void selector_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
void btnmatrix_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
void cpicker_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
void deleted_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
|
||||
#if HASP_USE_GPIO > 0
|
||||
void event_gpio_input(uint8_t pin, uint8_t group, uint8_t eventid);
|
||||
|
@ -489,16 +489,20 @@ void hasp_new_object(const JsonObject& config, uint8_t& saved_page_id)
|
||||
case LV_HASP_PAGE:
|
||||
case HASP_OBJ_PAGE:
|
||||
obj = lv_page_create(parent_obj, NULL);
|
||||
if(obj) obj->user_data.objid = LV_HASP_PAGE;
|
||||
// No event handler for pages
|
||||
if(obj) {
|
||||
obj->user_data.objid = LV_HASP_PAGE;
|
||||
lv_obj_set_event_cb(obj, deleted_event_handler); // Needed for memory dealocation
|
||||
}
|
||||
break;
|
||||
|
||||
#if LV_USE_WIN && LVGL_VERSION_MAJOR == 7
|
||||
case LV_HASP_WINDOW:
|
||||
case HASP_OBJ_WIN:
|
||||
obj = lv_win_create(parent_obj, NULL);
|
||||
if(obj) obj->user_data.objid = LV_HASP_WINDOW;
|
||||
// No event handler for pages
|
||||
if(obj) {
|
||||
obj->user_data.objid = LV_HASP_WINDOW;
|
||||
lv_obj_set_event_cb(obj, deleted_event_handler); // Needed for memory dealocation
|
||||
}
|
||||
break;
|
||||
|
||||
#endif
|
||||
@ -550,16 +554,18 @@ void hasp_new_object(const JsonObject& config, uint8_t& saved_page_id)
|
||||
case LV_HASP_TILEVIEW:
|
||||
case HASP_OBJ_TILEVIEW:
|
||||
obj = lv_tileview_create(parent_obj, NULL);
|
||||
if(obj) obj->user_data.objid = LV_HASP_TILEVIEW;
|
||||
|
||||
// No event handler for tileviews
|
||||
if(obj) {
|
||||
obj->user_data.objid = LV_HASP_TILEVIEW;
|
||||
lv_obj_set_event_cb(obj, deleted_event_handler); // Needed for memory dealocation
|
||||
}
|
||||
break;
|
||||
|
||||
case LV_HASP_TABVIEW:
|
||||
case HASP_OBJ_TABVIEW:
|
||||
obj = lv_tabview_create(parent_obj, NULL);
|
||||
// No event handler for tabs
|
||||
if(obj) {
|
||||
lv_obj_set_event_cb(obj, deleted_event_handler); // Needed for memory dealocation
|
||||
|
||||
lv_obj_t* tab;
|
||||
tab = lv_tabview_add_tab(obj, "tab 1");
|
||||
// lv_obj_set_user_data(tab, id + 1);
|
||||
@ -587,7 +593,10 @@ void hasp_new_object(const JsonObject& config, uint8_t& saved_page_id)
|
||||
case LV_HASP_SPINNER:
|
||||
case HASP_OBJ_SPINNER:
|
||||
obj = lv_spinner_create(parent_obj, NULL);
|
||||
if(obj) obj->user_data.objid = LV_HASP_SPINNER;
|
||||
if(obj) {
|
||||
obj->user_data.objid = LV_HASP_SPINNER;
|
||||
lv_obj_set_event_cb(obj, deleted_event_handler); // Needed for memory dealocation
|
||||
}
|
||||
break;
|
||||
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user