mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-04-28 12:58:00 +03:00
Use LuaUtil::cast for casting sol::object to prevent crashing on type mismatch in Lua scripts.
This commit is contained in:
parent
61578ca39b
commit
c362b2efa6
12 changed files with 48 additions and 46 deletions
|
@ -78,7 +78,7 @@ namespace LuaUi
|
|||
{
|
||||
sol::object result = callMethod("indexOf", name);
|
||||
if (result.is<size_t>())
|
||||
return fromLua(result.as<size_t>());
|
||||
return fromLua(LuaUtil::cast<size_t>(result));
|
||||
else
|
||||
return std::nullopt;
|
||||
}
|
||||
|
@ -86,7 +86,7 @@ namespace LuaUi
|
|||
{
|
||||
sol::object result = callMethod("indexOf", table);
|
||||
if (result.is<size_t>())
|
||||
return fromLua(result.as<size_t>());
|
||||
return fromLua(LuaUtil::cast<size_t>(result));
|
||||
else
|
||||
return std::nullopt;
|
||||
}
|
||||
|
|
|
@ -63,7 +63,7 @@ namespace LuaUi
|
|||
destroyWidget(w);
|
||||
return result;
|
||||
}
|
||||
ContentView content(contentObj.as<sol::table>());
|
||||
ContentView content(LuaUtil::cast<sol::table>(contentObj));
|
||||
result.resize(content.size());
|
||||
size_t minSize = std::min(children.size(), content.size());
|
||||
for (size_t i = 0; i < minSize; i++)
|
||||
|
|
|
@ -36,7 +36,7 @@ namespace LuaUi
|
|||
|
||||
private:
|
||||
Element(sol::table layout);
|
||||
sol::table layout() { return mLayout.as<sol::table>(); }
|
||||
sol::table layout() { return LuaUtil::cast<sol::table>(mLayout); }
|
||||
static std::map<Element*, std::shared_ptr<Element>> sAllElements;
|
||||
void updateAttachment();
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue