From b5f5d5f9d5e17b40481161b5698ff03dc3b4431c Mon Sep 17 00:00:00 2001 From: abcdefg30 Date: Sun, 21 May 2023 10:45:54 +0200 Subject: [PATCH] Fix ScriptContext crashing without a WorldLoaded function --- OpenRA.Game/Scripting/ScriptContext.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/OpenRA.Game/Scripting/ScriptContext.cs b/OpenRA.Game/Scripting/ScriptContext.cs index d3ad0b8555..2cbabd774c 100644 --- a/OpenRA.Game/Scripting/ScriptContext.cs +++ b/OpenRA.Game/Scripting/ScriptContext.cs @@ -284,18 +284,21 @@ namespace OpenRA.Scripting public void WorldLoaded() { - if (FatalErrorOccurred) + if (FatalErrorOccurred || runtime.Globals["WorldLoaded"] is not LuaFunction worldLoaded) return; try { - using (var worldLoaded = (LuaFunction)runtime.Globals["WorldLoaded"]) - worldLoaded.Call().Dispose(); + worldLoaded.Call().Dispose(); } catch (LuaException e) { FatalError(e); } + finally + { + worldLoaded?.Dispose(); + } } public void Tick()