When restarting Lua, use a single ApiContainer for all Lua libs

fixes a7ffdd948, 104c17e77, 151911069
This commit is contained in:
YoshiRulz 2020-11-25 18:02:01 +10:00
parent fe25b41c1e
commit fd4a534fa7
No known key found for this signature in database
GPG Key ID: C4DE31C245353FB7
1 changed files with 2 additions and 5 deletions

View File

@ -42,6 +42,7 @@ namespace BizHawk.Client.EmuHawk
LuaWait = new AutoResetEvent(false);
Docs.Clear();
var apiContainer = ApiManager.RestartLua(mainForm, serviceProvider, ConsoleLuaLibrary.LogOutput);
// Register lua libraries
foreach (var lib in Client.Common.ReflectionCache.Types.Concat(EmuHawk.ReflectionCache.Types)
@ -67,8 +68,7 @@ namespace BizHawk.Client.EmuHawk
clientLib.MainForm = mainForm;
}
ApiContainerInstance = ApiManager.RestartLua(mainForm, serviceProvider, ConsoleLuaLibrary.LogOutput);
if (instance is DelegatingLuaLibrary dlgInstance) dlgInstance.APIs = ApiContainerInstance;
if (instance is DelegatingLuaLibrary dlgInstance) dlgInstance.APIs = apiContainer;
EnumerateLuaFunctions(instance.Name, lib, instance);
Libraries.Add(lib, instance);
@ -83,9 +83,6 @@ namespace BizHawk.Client.EmuHawk
EnumerateLuaFunctions(nameof(LuaCanvas), typeof(LuaCanvas), null); // add LuaCanvas to Lua function reference table
}
/// <remarks>lazily instantiated</remarks>
private static ApiContainer ApiContainerInstance;
private Lua _lua = new Lua();
private Lua _currThread;