From c59c18eb6c057c3762d784613cad57e70f0c2017 Mon Sep 17 00:00:00 2001 From: Maximilian Engl Date: Fri, 13 Sep 2024 23:21:18 +0200 Subject: [PATCH] Fix invalid references Recently, battery state changed events with an invalid source have been reported. This prevents the exception that would be thrown. --- boards/shields/dongle_display/widgets/battery_status.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/boards/shields/dongle_display/widgets/battery_status.c b/boards/shields/dongle_display/widgets/battery_status.c index 3128d7e..fb8896a 100644 --- a/boards/shields/dongle_display/widgets/battery_status.c +++ b/boards/shields/dongle_display/widgets/battery_status.c @@ -65,6 +65,9 @@ static void draw_battery(lv_obj_t *canvas, uint8_t level, bool usb_present) { } static void set_battery_symbol(lv_obj_t *widget, struct battery_state state) { + if (state.source >= ZMK_SPLIT_BLE_PERIPHERAL_COUNT + SOURCE_OFFSET) { + return; + } LOG_DBG("source: %d, level: %d, usb: %d", state.source, state.level, state.usb_present); lv_obj_t *symbol = lv_obj_get_child(widget, state.source * 2); lv_obj_t *label = lv_obj_get_child(widget, state.source * 2 + 1);