From 46a638ee966f06989185c06e3e580c6581507396 Mon Sep 17 00:00:00 2001 From: zeromus Date: Tue, 27 Mar 2012 07:25:36 +0000 Subject: [PATCH] fix bug in lua coroutines which made error propagation get mixed up and possibly result in a bunch of other subtle bugs --- BizHawk.MultiClient/LuaImplementation.cs | 12 ++++++------ BizHawk.MultiClient/LuaInterface.dll | Bin 60928 -> 61440 bytes BizHawk.MultiClient/lua51.dll | Bin 321024 -> 321024 bytes BizHawk.MultiClient/tools/LuaConsole.cs | 14 +++++++------- LuaInterface/LuaInterface/Lua.cs | 18 +++++++++++++++--- 5 files changed, 28 insertions(+), 16 deletions(-) diff --git a/BizHawk.MultiClient/LuaImplementation.cs b/BizHawk.MultiClient/LuaImplementation.cs index 73a6cd6932..279ba46fb9 100644 --- a/BizHawk.MultiClient/LuaImplementation.cs +++ b/BizHawk.MultiClient/LuaImplementation.cs @@ -114,12 +114,12 @@ namespace BizHawk.MultiClient public Lua SpawnCoroutine(string File) { - LuaConsole Luas = new LuaConsole(); - var t = lua.NewThread(); - LuaRegister(t); - var main = t.LoadFile(File); - t.Push(main); //push main function on to stack for subsequent resuming - return t; + LuaConsole Luas = new LuaConsole(); + var t = lua.NewThread(); + LuaRegister(t); + var main = t.LoadFile(File); + t.Push(main); //push main function on to stack for subsequent resuming + return t; } private int LuaInt(object lua_arg) diff --git a/BizHawk.MultiClient/LuaInterface.dll b/BizHawk.MultiClient/LuaInterface.dll index bbb3701cb8ca952aafadb0dd3de18e22a29e72f9..6a350693fac106b5c997b16fe24ee47aa869eb84 100644 GIT binary patch delta 15373 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 delta 15287 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 diff --git a/BizHawk.MultiClient/lua51.dll b/BizHawk.MultiClient/lua51.dll index 84cbcb597fe2bf1208f4916a1e47d0dbe803da81..a40999b8c53070c976c95bb1a1f09ba729b66bcf 100644 GIT binary patch delta 76 zcmZoTBiwLCc)}0nze$A?fBQ0>G;8)^Z1-Yh-0sE5^eYA=-0mL7wB0?9S@(^=)oE|1 fv?b*DuITyYE-rMqYI}=uRJK delta 76 zcmZoTBiwLCc)}0nGU2?5zkQh=)--!DwtF!$Zueqj`V|8bZg-Dk+U_35toufwwDe$_ e1&^jr``XPs6IcA{*xusB!Vv~k+`E9K*cAYNR2?S( diff --git a/BizHawk.MultiClient/tools/LuaConsole.cs b/BizHawk.MultiClient/tools/LuaConsole.cs index d1eb174760..966b1a8ee2 100644 --- a/BizHawk.MultiClient/tools/LuaConsole.cs +++ b/BizHawk.MultiClient/tools/LuaConsole.cs @@ -836,13 +836,13 @@ namespace BizHawk.MultiClient } catch (Exception ex) { - if (ex.ToString().Substring(0, 32) == "LuaInterface.LuaScriptException:" || ex.ToString().Substring(0, 26) == "LuaInterface.LuaException:") - { - s.Enabled = false; - AddText(ex.Message); - UpdateNumberOfScripts(); - } - else MessageBox.Show(ex.ToString()); + if (ex is LuaInterface.LuaScriptException || ex is LuaInterface.LuaException) + { + s.Enabled = false; + AddText(ex.ToString()); + UpdateNumberOfScripts(); + } + else MessageBox.Show(ex.ToString()); } } } diff --git a/LuaInterface/LuaInterface/Lua.cs b/LuaInterface/LuaInterface/Lua.cs index a5d55c1584..11a73abe93 100644 --- a/LuaInterface/LuaInterface/Lua.cs +++ b/LuaInterface/LuaInterface/Lua.cs @@ -75,7 +75,16 @@ namespace LuaInterface /// object luaLock = new object(); - public Lua() + internal Lua(bool newThread) + { + if (!newThread) init(); + } + + public Lua() + { + init(); + } + void init() { luaState = LuaDLL.luaL_newstate(); // steffenj: Lua 5.1.1 API change (lua_open is gone) //LuaDLL.luaopen_base(luaState); // steffenj: luaopen_* no longer used @@ -514,13 +523,15 @@ namespace LuaInterface public int Resume(int narg) { + int top = LuaDLL.lua_gettop(luaState); int ret = LuaDLL.lua_resume(luaState, narg); if (ret == 1 /*LUA_YIELD*/) return 1; //yielded if (ret == 0) //normal termination - what to do? return 0; //error. throw exception with error message (TBD - debug api to get call stack) - throw new LuaException(LuaDLL.lua_tostring(luaState, -1)); + ThrowExceptionFromError(top); + return ret; } public void Yield(int nresults) { @@ -529,7 +540,8 @@ namespace LuaInterface public Lua NewThread() { - var lua = new Lua(); + var lua = new Lua(true); + lua.translator = translator; lua.luaState = LuaDLL.lua_newthread(luaState); return lua; }