When restarting Lua, use a single ApiContainer for all Lua libs
fixesa7ffdd948
,104c17e77
,151911069
This commit is contained in:
parent
fe25b41c1e
commit
fd4a534fa7
|
@ -42,6 +42,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
LuaWait = new AutoResetEvent(false);
|
LuaWait = new AutoResetEvent(false);
|
||||||
Docs.Clear();
|
Docs.Clear();
|
||||||
|
var apiContainer = ApiManager.RestartLua(mainForm, serviceProvider, ConsoleLuaLibrary.LogOutput);
|
||||||
|
|
||||||
// Register lua libraries
|
// Register lua libraries
|
||||||
foreach (var lib in Client.Common.ReflectionCache.Types.Concat(EmuHawk.ReflectionCache.Types)
|
foreach (var lib in Client.Common.ReflectionCache.Types.Concat(EmuHawk.ReflectionCache.Types)
|
||||||
|
@ -67,8 +68,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
clientLib.MainForm = mainForm;
|
clientLib.MainForm = mainForm;
|
||||||
}
|
}
|
||||||
|
|
||||||
ApiContainerInstance = ApiManager.RestartLua(mainForm, serviceProvider, ConsoleLuaLibrary.LogOutput);
|
if (instance is DelegatingLuaLibrary dlgInstance) dlgInstance.APIs = apiContainer;
|
||||||
if (instance is DelegatingLuaLibrary dlgInstance) dlgInstance.APIs = ApiContainerInstance;
|
|
||||||
|
|
||||||
EnumerateLuaFunctions(instance.Name, lib, instance);
|
EnumerateLuaFunctions(instance.Name, lib, instance);
|
||||||
Libraries.Add(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
|
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 _lua = new Lua();
|
||||||
private Lua _currThread;
|
private Lua _currThread;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue