From c96f502c6c32af54a8e91a131523a06b67762522 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 29 May 2024 18:34:07 +0200 Subject: [PATCH] Lua: Robustify LayoutBuilder integration "Executing" 'Row { "a", b, "c" }' with unquoted b previously crashed. Change-Id: Ifb505c1a836a6041b05911e322cad596c3969e03 Reviewed-by: Marcus Tillmanns --- src/plugins/lua/bindings/layout.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/plugins/lua/bindings/layout.cpp b/src/plugins/lua/bindings/layout.cpp index 2a0c1574fb2..a7c32921c60 100644 --- a/src/plugins/lua/bindings/layout.cpp +++ b/src/plugins/lua/bindings/layout.cpp @@ -19,9 +19,15 @@ static void processChildren(T *item, const sol::table &children) for (size_t i = 1; i <= children.size(); ++i) { const auto &child = children[i]; if (child.is()) { - item->addItem(*child.get()); + if (Layout *layout = child.get()) + item->addItem(*layout); + else + item->addItem("ERROR"); } else if (child.is()) { - item->addItem(*child.get()); + if (Widget *widget = child.get()) + item->addItem(*widget); + else + item->addItem("ERROR"); } else if (child.is()) { child.get()->addToLayout(*item); } else if (child.is()) {