mirror of
https://github.com/lvgl/lvgl.git
synced 2026-05-22 23:37:43 +08:00
fix(anim): fix the crash caused by delete anim in cb (#7926)
Signed-off-by: yushuailong <yushuailong1@xiaomi.com> Signed-off-by: yushuailong1 <yushuailong1@xiaomi.com> Co-authored-by: yushuailong <yushuailong1@xiaomi.com>
This commit is contained in:
@@ -13,6 +13,8 @@ void setUp(void)
|
||||
void tearDown(void)
|
||||
{
|
||||
/* Function run after every test */
|
||||
lv_obj_clean(lv_screen_active());
|
||||
lv_anim_delete_all();
|
||||
}
|
||||
|
||||
static void exec_cb(void * var, int32_t v)
|
||||
@@ -170,4 +172,25 @@ void test_anim_pause_for_resume(void)
|
||||
lv_test_wait(20);
|
||||
TEST_ASSERT_EQUAL(19, var);
|
||||
}
|
||||
|
||||
static void event_cb(lv_event_t * e)
|
||||
{
|
||||
lv_obj_t * obj = lv_event_get_target_obj(e);
|
||||
int * var = lv_event_get_user_data(e);
|
||||
lv_anim_delete(obj, NULL);
|
||||
*var += 1;
|
||||
}
|
||||
|
||||
void test_scroll_anim_delete(void)
|
||||
{
|
||||
int var = 0;
|
||||
lv_obj_t * obj = lv_obj_create(lv_screen_active());
|
||||
lv_obj_add_event_cb(obj, event_cb, LV_EVENT_SCROLL_END, &var);
|
||||
lv_obj_scroll_by(obj, 0, 100, LV_ANIM_ON);
|
||||
lv_test_wait(20);
|
||||
lv_obj_scroll_by(obj, 0, 100, LV_ANIM_ON);
|
||||
|
||||
TEST_ASSERT_EQUAL(1, var);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user