Stack overflow in lv_keyboard_create() when LV_ASSERT_OBJ enabled

I believe that lv_keyboard_create() has a stack overflow when LV_ASSERT_OBJ is enabled.

When lv_keyboard_create() is called it calls lv_obj_get_parent to set the obj size, which calls the LV_ASSERT_OBJ macro. The stack trace is

LV_ASSERT_OBJ()
LV_DEBUG_IS_OBJ()
lv_debug_check_obj_type()
lv_obj_get_parent()
lv_debug_check_obj_type()
lv_obj_get_type()
obj->signal_cb()
lv_keyboard_signal()
LV_ASSERT_OBJ() 
... loops

I do not believe that any lv_xxx_signal() function can use LV_ASSERT_OBJ as it will infinitely loop.

I checked all the other signal functions and lv_keyboard was the only widget/object to call LV_ASSERT_OBJ

Update: current source does not have LV_ASSERT_OBJ in lv_keyboard_signal. I can’t find it in the file history either. So I don’t know how it got into the source.

Moderator can delete this post.

Signal functions shouldn’t have LV_ASSERT_OBJ.
Anyway, thanks for the report. At least we are aware of this potential issue.