Lv_obj_del Cause Program Died

Description

I imitate demo.c code method,I dynamic create and delete a obj.
when I delele two page, It is work okay.but when I delete more page that I find program will random died .

What MCU/Processor/Board and compiler are you using?

F746

Code to reproduce

static void btn_1select_cb(lv_obj_t * btn, lv_event_t event)
{
    if(event == LV_EVENT_CLICKED) {
			if(btn == btn_1selectRoom)
			{
				scr3_roomSelect_ObjCreate();
        lv_tabview_set_tab_act(tabview, (uint16_t)2, LV_ANIM_OFF);
			}
			else if(btn == btn_P2_2)
			{
				scr5_SelectLvHomeMode_ObjCreate();
				lv_tabview_set_tab_act(tabview, (uint16_t)eLvMainObj_selectLvHomeSetTime, LV_ANIM_OFF);
			}
			else if(btn == btn_P2_7)
			{
				scr10_SelectRunState_ObjCreate();
				lv_tabview_set_tab_act(tabview, (uint16_t)eLvMainObj_selectRunState, LV_ANIM_OFF);
			}
    }
}

static void scr10_SelectRunState_ObjCreate(void)
{
		lv_obj_t * tmplabel = NULL;
		lv_obj_t * tmpimg = NULL;
		lv_obj_t * tmpcont = NULL;
		lv_obj_t * tmpobj = NULL;
		char i,tmpbuf[3]={0};
		if(gMainObjManager[eLvMainObj_selectRunState] == NULL)
		{
			gMainObjManager[eLvMainObj_selectRunState] = lv_cont_create(gLvScr[eLvMainObj_selectRunState], NULL);
			lv_obj_set_protect(gMainObjManager[eLvMainObj_selectRunState], LV_PROTECT_PARENT);          /*Don't let to move the wallpaper by the layout */
			lv_obj_set_parent(gMainObjManager[eLvMainObj_selectRunState], gLvScr[eLvMainObj_selectRunState]);
			lv_obj_set_size(gMainObjManager[eLvMainObj_selectRunState], LV_HOR_RES_MAX, LV_VER_RES_MAX);
			lv_obj_set_pos(gMainObjManager[eLvMainObj_selectRunState], 0, 0);
			lv_img_set_style(gMainObjManager[eLvMainObj_selectRunState], LV_IMG_STYLE_MAIN, &style_btn_border_maincolor);
			//*******
			//smart mode set font
			tmpobj = lv_obj_create(gMainObjManager[eLvMainObj_selectRunState], NULL);
			lv_obj_set_size(tmpobj, 260, 50);
			lv_obj_set_pos(tmpobj, 46, 65);
			lv_cont_set_style(tmpobj, LV_CONT_STYLE_MAIN, &style_btn_rel);
			// lv_cont_set_layout(tmpobj,LV_LAYOUT_CENTER);
			//obj character xitongshezhi
			tmplabel = lv_label_create(tmpobj, NULL);
			lv_label_set_style(tmplabel, LV_LABEL_STYLE_MAIN, &style_chinese_blue);
			lv_label_set_text(tmplabel, "运行状态");
			lv_obj_align(tmplabel, NULL, LV_ALIGN_CENTER, 0, 0);

			//btnP5 return home
			btnP10_returnhome = lv_btn_create(gMainObjManager[eLvMainObj_selectRunState], NULL);
			lv_btn_set_style(btnP10_returnhome, LV_BTN_STYLE_REL, &style_btn_rel);
			lv_btn_set_style(btnP10_returnhome, LV_BTN_STYLE_PR, &style_btn_pr);
			lv_obj_set_pos(btnP10_returnhome, 798, 66);
			lv_obj_set_size(btnP10_returnhome, 88, 50);
			lv_obj_set_user_data(btnP10_returnhome, (lv_obj_user_data_t)eLvMainObj_ModeSelect);

			lv_cont_set_layout(btnP10_returnhome,LV_LAYOUT_CENTER);
			lv_obj_set_event_cb(btnP10_returnhome, btn_event_cb);
			//btnP4 return 
			tmpimg = lv_img_create(btnP10_returnhome, NULL);
			lv_img_set_src(tmpimg, &ImgManager[eLvImgNum_P1ReturnHome].img); 
			lv_img_set_style(tmpimg, LV_IMG_STYLE_MAIN, &lv_style_plain);

			//btnP4 return
			btnP10_return = lv_btn_create(gMainObjManager[eLvMainObj_selectRunState], NULL);
			lv_btn_set_style(btnP10_return, LV_BTN_STYLE_REL, &style_btn_rel);
			lv_btn_set_style(btnP10_return, LV_BTN_STYLE_PR, &style_btn_pr);
			lv_obj_set_pos(btnP10_return, 888, 66);
			lv_obj_set_size(btnP10_return, 88, 50);
			lv_cont_set_layout(btnP10_return,LV_LAYOUT_CENTER);
			//btnP4 return icon
			tmpimg = lv_img_create(btnP10_return, NULL);
			lv_img_set_src(tmpimg, &ImgManager[eLvImgNum_Allreturn].img); 
			lv_img_set_style(tmpimg, LV_IMG_STYLE_MAIN, &lv_style_plain);

			//square1
			//square1 time set
			tmpobj = lv_obj_create(gMainObjManager[eLvMainObj_selectRunState], NULL);
			lv_obj_set_size(tmpobj, 750+178, 70);
			lv_obj_set_pos(tmpobj, 46, 132);
			lv_cont_set_style(tmpobj, LV_CONT_STYLE_MAIN, &style_btn_rel);

			//xitongshijian  label
			tmplabel = lv_label_create(gMainObjManager[eLvMainObj_selectRunState], NULL);
			lv_label_set_style(tmplabel, LV_LABEL_STYLE_MAIN, &FONT_MAINDISPLAY);
			lv_label_set_text(tmplabel, "运行机组");
			lv_obj_align(tmplabel, tmpobj, LV_ALIGN_IN_LEFT_MID, 150, 0);
			
		}
}


static void btn_event_cb(lv_obj_t * btn, lv_event_t event)
{
	uint16_t btnData=(uint16_t)lv_obj_get_user_data(btn);
    if(event == LV_EVENT_CLICKED) {
				// if((uint16_t)lv_obj_get_user_data(btn) == 0)
				// if(btnP4_returnhome == btn)
				// {
				// 		lv_obj_del(gMainObjManager[eLvMainObj_selectSmartMode]);
				// 		gMainObjManager[eLvMainObj_selectSmartMode] = NULL;
				// 		btnData=eLvMainObj_ModeSelect;
				// }
				// else if(btnP6_returnhome == btn)
				// {
				// 		lv_obj_del(gMainObjManager[eLvMainObj_selectSelfMode]);
				// 		gMainObjManager[eLvMainObj_selectSelfMode] = NULL;
				// 		btnData=eLvMainObj_ModeSelect;
				// }
				if(btnP5_returnhome == btn)
				{
						lv_obj_del(gMainObjManager[eLvMainObj_selectLvHomeSetTime]);
						gMainObjManager[eLvMainObj_selectLvHomeSetTime] = NULL;
						btnData=eLvMainObj_ModeSelect;
				}
				else if(btnP10_returnhome == btn)
				{
						lv_obj_del(gMainObjManager[eLvMainObj_selectRunState]);
						gMainObjManager[eLvMainObj_selectRunState] = NULL;
						btnData=eLvMainObj_ModeSelect;
				}
        lv_tabview_set_tab_act(tabview, (uint16_t)btnData, LV_ANIM_OFF);
    }
    // if(event == LV_EVENT_CLICKED) {
		// 		if((uint16_t)lv_obj_get_user_data(btn) == 0)
		// 		{

		// 		}
		// 		else if((uint16_t)lv_obj_get_user_data(btn) == 1)
		// 		{

		// 		}
    //     lv_tabview_set_tab_act(tabview, (uint16_t)lv_obj_get_user_data(btn), LV_ANIM_OFF);
    // }
}

Hi,

I’d like to try your code, but there are a lot of undefined variables. Can you send a full yet simple example? (E.g, if styles don’t matter, please leave the default styles for simplicity)