diff --git a/src/core/lv_group.c b/src/core/lv_group.c index f7a7cbb14e..f038fd6a76 100644 --- a/src/core/lv_group.c +++ b/src/core/lv_group.c @@ -75,6 +75,7 @@ lv_group_t * lv_group_create(void) void lv_group_delete(lv_group_t * group) { /*Defocus the currently focused object*/ + LV_ASSERT_NULL(group); if(group->obj_focus != NULL) { lv_obj_send_event(*group->obj_focus, LV_EVENT_DEFOCUSED, get_indev(group)); lv_obj_invalidate(*group->obj_focus); @@ -220,6 +221,8 @@ void lv_group_remove_obj(lv_obj_t * obj) void lv_group_remove_all_objs(lv_group_t * group) { + LV_ASSERT_NULL(group); + /*Defocus the currently focused object*/ if(group->obj_focus != NULL) { lv_obj_send_event(*group->obj_focus, LV_EVENT_DEFOCUSED, get_indev(group)); @@ -271,6 +274,8 @@ void lv_group_focus_obj(lv_obj_t * obj) void lv_group_focus_next(lv_group_t * group) { + LV_ASSERT_NULL(group); + bool focus_changed = focus_next_core(group, _lv_ll_get_head, _lv_ll_get_next); if(group->edge_cb) { if(!focus_changed) @@ -280,6 +285,8 @@ void lv_group_focus_next(lv_group_t * group) void lv_group_focus_prev(lv_group_t * group) { + LV_ASSERT_NULL(group); + bool focus_changed = focus_next_core(group, _lv_ll_get_tail, _lv_ll_get_prev); if(group->edge_cb) { if(!focus_changed) @@ -289,12 +296,16 @@ void lv_group_focus_prev(lv_group_t * group) void lv_group_focus_freeze(lv_group_t * group, bool en) { + LV_ASSERT_NULL(group); + if(en == false) group->frozen = 0; else group->frozen = 1; } lv_result_t lv_group_send_data(lv_group_t * group, uint32_t c) { + LV_ASSERT_NULL(group); + lv_obj_t * act = lv_group_get_focused(group); if(act == NULL) return LV_RESULT_OK; @@ -305,17 +316,21 @@ lv_result_t lv_group_send_data(lv_group_t * group, uint32_t c) void lv_group_set_focus_cb(lv_group_t * group, lv_group_focus_cb_t focus_cb) { + if(group == NULL) return; + group->focus_cb = focus_cb; } void lv_group_set_edge_cb(lv_group_t * group, lv_group_edge_cb_t edge_cb) { + LV_ASSERT_NULL(group); + group->edge_cb = edge_cb; } void lv_group_set_editing(lv_group_t * group, bool edit) { - if(group == NULL) return; + LV_ASSERT_NULL(group); uint8_t en_val = edit ? 1 : 0; if(en_val == group->editing) return; /*Do not set the same mode again*/ @@ -333,11 +348,13 @@ void lv_group_set_editing(lv_group_t * group, bool edit) void lv_group_set_refocus_policy(lv_group_t * group, lv_group_refocus_policy_t policy) { + LV_ASSERT_NULL(group); group->refocus_policy = policy & 0x01; } void lv_group_set_wrap(lv_group_t * group, bool en) { + LV_ASSERT_NULL(group); group->wrap = en ? 1 : 0; } @@ -375,6 +392,7 @@ bool lv_group_get_wrap(lv_group_t * group) uint32_t lv_group_get_obj_count(lv_group_t * group) { + LV_ASSERT_NULL(group); return _lv_ll_get_len(&group->obj_ll); }