indev_button_proc (line 661 of
lv_core/lv_indev.c) can badly fail if there is no point(s) array set.
What MCU/Processor/Board and compiler are you using?
What do you experience?
If I forget (silly me ) to set the points array for a
LV_INDEV_TYPE_BUTTON input device driver, then invariably the program fails with a hard-reset of the microcontroller.
Looking at the C code, if one does not set the points array using
lv_indev_set_button_points, then things go badly wrong. Basically lines 663-4 of
lv_core/lv_indev.c will try to access inexistant data by dereferencing a
NULL pointer (as far as I can tell when an input device is registered, then its
btn_points field is set to
However, looking in the same file at the code to handle groups then one sees (lines 376-80 and 531-35) that the absence of a group is handled gracefully; by a return if
What do you expect?
A graceful failure. Basically a test wether
btn_points==NULL. Copying what is found to handle the case where
group==NULL (see lines 376-7, 531-2 of
lv_indev.c), one could imagine having the following between lines 662 and 663:
lv_point_t * pts = i->btn_points; if (pts==NULL) return;