fix some crashes in CDL. things were rough enough for CDL due to tool open/close and core life cycle being wrecked, but it totally melted down when CDL got sent through the service injection stuff, so this has been pretty broken for years now

This commit is contained in:
zeromus 2020-08-28 19:09:07 -04:00
parent f89840234d
commit 234642ed0d
2 changed files with 18 additions and 2 deletions

View File

@ -48,8 +48,21 @@ namespace BizHawk.Client.EmuHawk
[RequiredService]
private IMemoryDomains MemoryDomains { get; set; }
ICodeDataLogger _icdlogger;
[RequiredService]
private ICodeDataLogger CodeDataLogger { get; set; }
private ICodeDataLogger CodeDataLogger
{
get
{
return _icdlogger;
}
set
{
_icdlogger?.SetCDL(null);
_icdlogger = value;
}
}
private string _currentFilename;
private CodeDataLog _cdl;
@ -450,7 +463,7 @@ namespace BizHawk.Client.EmuHawk
void ShutdownCDL()
{
_cdl = null;
CodeDataLogger.SetCDL(null);
CodeDataLogger?.SetCDL(null);
}
protected override void OnClosing(System.ComponentModel.CancelEventArgs e)

View File

@ -153,6 +153,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.SNES
public void QUERY_set_cdl(ICodeDataLog cdl)
{
if (_exe == null)
return;
using (_exe.EnterExit())
{
for (int i = 0; i < 8; i++)