diff --git a/src/core/lv_obj.c b/src/core/lv_obj.c index 14fd7d0b9..7e3d5899f 100644 --- a/src/core/lv_obj.c +++ b/src/core/lv_obj.c @@ -98,6 +98,8 @@ lv_obj_t * lv_obj_create(lv_obj_t * parent) { LV_LOG_INFO("begin"); lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); + LV_ASSERT_NULL(obj); + if(obj == NULL) return NULL; lv_obj_class_init_obj(obj); return obj; } diff --git a/src/core/lv_obj_class.c b/src/core/lv_obj_class.c index 1d7b932f5..952b7b1cd 100644 --- a/src/core/lv_obj_class.c +++ b/src/core/lv_obj_class.c @@ -66,8 +66,12 @@ lv_obj_t * lv_obj_class_create_obj(const lv_obj_class_t * class_p, lv_obj_t * pa disp->screen_cnt = 0; } + lv_obj_t ** screens = lv_realloc(disp->screens, sizeof(lv_obj_t *) * (disp->screen_cnt + 1)); + LV_ASSERT_NULL(screens); + if(screens == NULL) return NULL; + disp->screen_cnt++; - disp->screens = lv_realloc(disp->screens, sizeof(lv_obj_t *) * disp->screen_cnt); + disp->screens = screens; disp->screens[disp->screen_cnt - 1] = obj; /*Set coordinates to full screen size*/