I test the example lv_test_tabview_1() at stm32f429 and the pc_simulator_sdl_visual_studio project ,
the program stop at the same sect;
lv_test_tabview_1(void) ,the program is stop at lv_tabview.c line 248 lv_mem_assert(ext->tab_name_ptr);
this program maybe has bug;
1.lv_test_tabview.c line 40 void lv_test_tabview_1(void);
2.call line 53 lv_obj_t * tv2 = lv_tabview_create(lv_disp_get_scr_act(NULL), tv1);
3.
lv_obj_t * lv_tabview_create(lv_obj_t * par, const lv_obj_t * copy)
{
...
for(i = 0; i < copy_ext->tab_cnt; i++) {
new_tab = lv_tabview_add_tab(new_tabview, copy_ext->tab_name_ptr[i]);
copy_tab = lv_tabview_get_tab(copy, i);
lv_page_set_style(new_tab, LV_PAGE_STYLE_BG, lv_page_get_style(copy_tab, LV_PAGE_STYLE_BG));
lv_page_set_style(new_tab, LV_PAGE_STYLE_SCRL, lv_page_get_style(copy_tab, LV_PAGE_STYLE_SCRL));
lv_page_set_style(new_tab, LV_PAGE_STYLE_SB, lv_page_get_style(copy_tab, LV_PAGE_STYLE_SB));
}
...
}
new_tab = lv_tabview_add_tab(new_tabview, copy_ext->tab_name_ptr[i]);
but before the ext->tab_cnt is not init ;
in lv_tabview_add_tab();make the lv_mem_realloc() return NULL;
lv_obj_t * lv_tabview_add_tab(lv_obj_t * tabview, const char * name)
{
...
switch(ext->btns_pos) {
case LV_TABVIEW_BTNS_POS_TOP:
case LV_TABVIEW_BTNS_POS_BOTTOM:
ext->tab_name_ptr = lv_mem_realloc(ext->tab_name_ptr, sizeof(char *) * (ext->tab_cnt + 1));
break;
case LV_TABVIEW_BTNS_POS_LEFT:
case LV_TABVIEW_BTNS_POS_RIGHT:
ext->tab_name_ptr = lv_mem_realloc(ext->tab_name_ptr, sizeof(char *) * (ext->tab_cnt * 2));
break;
}
...
}
make the program fault;
I think this is a bugs;
please make sure;
best wish for you