From e7d98dc8876edc1e41fc26c32d243d2070bfd61e Mon Sep 17 00:00:00 2001 From: EvilFactory Date: Sat, 29 Oct 2022 20:30:02 -0300 Subject: [PATCH] Update Moonsharp for the new pcall exception handling --- Barotrauma/BarotraumaShared/Lua/LuaUserData.lua | 9 ++++++++- .../BarotraumaShared/SharedSource/LuaCs/LuaCsSetup.cs | 1 + Libraries/moonsharp | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Barotrauma/BarotraumaShared/Lua/LuaUserData.lua b/Barotrauma/BarotraumaShared/Lua/LuaUserData.lua index 8906b4d12..756f9967c 100644 --- a/Barotrauma/BarotraumaShared/Lua/LuaUserData.lua +++ b/Barotrauma/BarotraumaShared/Lua/LuaUserData.lua @@ -53,7 +53,14 @@ luaUserData.AddCallMetaTable = function (userdata) error("userdata was nil.", 2) end - return userdata.__new(...) + local success, result = pcall(userdata.__new, ...) + + + if not success then + error(result, 2) + end + + return result end }) end diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsSetup.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsSetup.cs index 2ac23b482..18fc1e353 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsSetup.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsSetup.cs @@ -271,6 +271,7 @@ namespace Barotrauma Lua.Options.DebugPrint = PrintMessage; Lua.Options.ScriptLoader = LuaScriptLoader; Lua.Options.CheckThreadAccess = false; + Script.GlobalOptions.ShouldPCallCatchException = (Exception ex) => { return true; }; CsScript = new CsScriptRunner(this); require = new LuaRequire(Lua); diff --git a/Libraries/moonsharp b/Libraries/moonsharp index 267b6a25c..2a70d4277 160000 --- a/Libraries/moonsharp +++ b/Libraries/moonsharp @@ -1 +1 @@ -Subproject commit 267b6a25c816c55ed4d5855437f3e400d353a40d +Subproject commit 2a70d427796379c48231ccefb5b883784ef75628