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

View File

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