fix(color): Lvgl 'line' object in Lua script may crash (#6224)

This commit is contained in:
philmoz
2025-05-08 22:30:19 +10:00
committed by GitHub
parent d0bb0590c2
commit 9e20b7f2ee
+4 -3
View File
@@ -810,7 +810,8 @@ void LvglWidgetLine::setColor(LcdFlags newColor)
void LvglWidgetLine::setOpacity(uint8_t newOpa)
{
opacity.value = newOpa;
lv_obj_set_style_line_opa(lvobj, opacity.value, LV_PART_MAIN);
if (lvobj)
lv_obj_set_style_line_opa(lvobj, opacity.value, LV_PART_MAIN);
}
void LvglWidgetLine::setPos(coord_t x, coord_t y)
@@ -852,9 +853,9 @@ void LvglWidgetLine::setLine()
void LvglWidgetLine::build(lua_State *L)
{
if (pts) {
setLine();
setColor(color.flags);
setOpacity(opacity.value);
setLine();
}
}
@@ -2193,7 +2194,7 @@ void LvglWidgetMenu::build(lua_State *L)
auto menu = new Menu();
if (!title.empty()) menu->setTitle(title);
for (int i = 0; i < values.size(); i += 1) {
for (size_t i = 0; i < values.size(); i += 1) {
menu->addLine(values[i], [=]() {
pcallSetIntVal(L, setFunction, i + 1);
});