fix exiting drivers with DRC cores (nw)

This commit is contained in:
Miodrag Milanovic 2015-12-23 19:55:39 +01:00
parent a64b333926
commit c66ddfc1db
2 changed files with 6 additions and 7 deletions

View File

@ -121,11 +121,12 @@ drcbe_interface::~drcbe_interface()
drcuml_state::drcuml_state(device_t &device, drc_cache &cache, UINT32 flags, int modes, int addrbits, int ignorebits)
: m_device(device),
m_cache(cache),
m_beintf(device.machine().options().drc_use_c() ?
*static_cast<drcbe_interface *>(auto_alloc(device.machine(), drcbe_c(*this, device, cache, flags, modes, addrbits, ignorebits))) :
*static_cast<drcbe_interface *>(auto_alloc(device.machine(), drcbe_native(*this, device, cache, flags, modes, addrbits, ignorebits)))),
m_drcbe_interface(device.machine().options().drc_use_c() ?
std::unique_ptr<drcbe_interface>{ std::make_unique<drcbe_c>(*this, device, cache, flags, modes, addrbits, ignorebits) } :
std::unique_ptr<drcbe_interface>{ std::make_unique<drcbe_native>(*this, device, cache, flags, modes, addrbits, ignorebits) }),
m_beintf(*m_drcbe_interface.get()),
m_umllog(nullptr)
{
{
// if we're to log, create the logfile
if (device.machine().options().drc_log_uml())
{
@ -141,9 +142,6 @@ drcuml_state::drcuml_state(device_t &device, drc_cache &cache, UINT32 flags, int
drcuml_state::~drcuml_state()
{
// free the back-end
auto_free(m_device.machine(), &m_beintf);
// close any files
if (m_umllog != nullptr)
fclose(m_umllog);

View File

@ -226,6 +226,7 @@ private:
// internal state
device_t & m_device; // CPU device we are associated with
drc_cache & m_cache; // pointer to the codegen cache
std::unique_ptr<drcbe_interface> m_drcbe_interface;
drcbe_interface & m_beintf; // backend interface pointer
FILE * m_umllog; // handle to the UML logfile
simple_list<drcuml_block> m_blocklist; // list of active blocks