simplify (nw)

This commit is contained in:
Miodrag Milanovic 2016-01-12 09:17:14 +01:00
parent 8eb32c4c4b
commit 7dec0b4143

View File

@ -16,26 +16,12 @@
#include "debug/debugvw.h"
#include <ctype.h>
/***************************************************************************
TYPE DEFINITIONS
***************************************************************************/
struct machine_entry
{
machine_entry * next;
running_machine * machine;
};
/***************************************************************************
GLOBAL VARIABLES
***************************************************************************/
static machine_entry *machine_list;
static int atexit_registered;
static running_machine *g_machine = nullptr;
static int g_atexit_registered = FALSE;
@ -60,25 +46,20 @@ void debugger_init(running_machine &machine)
/* only if debugging is enabled */
if (machine.debug_flags & DEBUG_FLAG_ENABLED)
{
machine_entry *entry;
/* initialize the submodules */
machine.m_debug_view.reset(global_alloc(debug_view_manager(machine)));
machine.m_debug_view = std::make_unique<debug_view_manager>(machine);
debug_cpu_init(machine);
debug_command_init(machine);
debug_console_init(machine);
/* allocate a new entry for our global list */
machine.add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(debugger_exit), &machine));
entry = global_alloc(machine_entry);
entry->next = machine_list;
entry->machine = &machine;
machine_list = entry;
g_machine = &machine;
/* register an atexit handler if we haven't yet */
if (!atexit_registered)
if (!g_atexit_registered)
atexit(debugger_flush_all_traces_on_abnormal_exit);
atexit_registered = TRUE;
g_atexit_registered = TRUE;
/* listen in on the errorlog */
machine.add_logerror_callback(debug_errorlog_write_line);
@ -107,17 +88,7 @@ void debugger_refresh_display(running_machine &machine)
static void debugger_exit(running_machine &machine)
{
machine_entry **entryptr;
/* remove this machine from the list; it came down cleanly */
for (entryptr = &machine_list; *entryptr != nullptr; entryptr = &(*entryptr)->next)
if ((*entryptr)->machine == &machine)
{
machine_entry *deleteme = *entryptr;
*entryptr = deleteme->next;
global_free(deleteme);
break;
}
g_machine = nullptr;
}
@ -129,12 +100,8 @@ static void debugger_exit(running_machine &machine)
void debugger_flush_all_traces_on_abnormal_exit(void)
{
/* clear out the machine list and flush traces on each one */
while (machine_list != nullptr)
if(g_machine!=nullptr)
{
machine_entry *deleteme = machine_list;
debug_cpu_flush_traces(*deleteme->machine);
machine_list = deleteme->next;
global_free(deleteme);
debug_cpu_flush_traces(*g_machine);
}
}