diff options
author | psi29a <psi29a@gmail.com> | 2022-01-06 08:49:17 +0000 |
---|---|---|
committer | psi29a <psi29a@gmail.com> | 2022-01-06 08:49:17 +0000 |
commit | 1d4de71d35780db3e9a1de81c4dbc14da0f0f2c2 (patch) | |
tree | 21f52cd24f319473300d6e9c2417ae5f175acf6b | |
parent | 555e0b1f531c05d064bc1d9a2ae0bbb5e09bbea4 (diff) | |
parent | 6a19a66ae5fa15c416fc73cfd2a71b7e9a4f9ca8 (diff) |
Merge branch 'fix2' into 'master'
Fixes in components/lua
Closes #6535
See merge request OpenMW/openmw!1538
-rw-r--r-- | components/lua/i18n.cpp | 3 | ||||
-rw-r--r-- | components/lua/luastate.cpp | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/components/lua/i18n.cpp b/components/lua/i18n.cpp index 9fd2724f75..e4d8e3ba78 100644 --- a/components/lua/i18n.cpp +++ b/components/lua/i18n.cpp @@ -99,6 +99,9 @@ namespace LuaUtil { if (mI18nLoader == sol::nil) throw std::runtime_error("LuaUtil::I18nManager is not initialized"); + auto it = mContexts.find(contextName); + if (it != mContexts.end()) + return sol::make_object(mLua->sol(), it->second); Context ctx{contextName, mLua->newTable(), call(mI18nLoader, "i18n.init")}; ctx.updateLang(this); mContexts.emplace(contextName, ctx); diff --git a/components/lua/luastate.cpp b/components/lua/luastate.cpp index cee48b4545..6ff698c9c2 100644 --- a/components/lua/luastate.cpp +++ b/components/lua/luastate.cpp @@ -170,7 +170,7 @@ namespace LuaUtil sol::environment env(mLua, sol::create, mSandboxEnv); sol::table loaded(mLua, sol::create); for (const std::string& s : safePackages) - loaded[s] = mSandboxEnv[s]; + loaded[s] = static_cast<sol::object>(mSandboxEnv[s]); env["require"] = [this, loaded, env](const std::string& module) mutable { if (loaded[module] != sol::nil) |