don't drop an entire layout if one view fails to load - it breaks intlc44/intlc440 with null_modem
This commit is contained in:
parent
f1b30abacf
commit
5de1667104
@ -2561,8 +2561,21 @@ layout_file::layout_file(running_machine &machine, util::xml::data_node const &r
|
|||||||
|
|
||||||
// parse all the views
|
// parse all the views
|
||||||
for (util::xml::data_node const *viewnode = mamelayoutnode->get_child("view"); viewnode != nullptr; viewnode = viewnode->get_next_sibling("view"))
|
for (util::xml::data_node const *viewnode = mamelayoutnode->get_child("view"); viewnode != nullptr; viewnode = viewnode->get_next_sibling("view"))
|
||||||
|
{
|
||||||
|
// the trouble with allowing emu_fatalerror to propagate here is that it wreaks havoc with screenless systems that use a terminal by default
|
||||||
|
// e.g. intlc44 and intlc440 have a terminal on the tty port by default and have a view with the front panel above the terminal screen
|
||||||
|
// however, they have a second view with just the front panel which is very useful if you're using e.g. -tty null_modem with a socket
|
||||||
|
// if the emu_fatalerror is allowed to propagate, the entire layout is dropped so you can't select the useful view
|
||||||
|
try
|
||||||
|
{
|
||||||
m_viewlist.append(*global_alloc(layout_view(machine, *viewnode, m_elemlist)));
|
m_viewlist.append(*global_alloc(layout_view(machine, *viewnode, m_elemlist)));
|
||||||
}
|
}
|
||||||
|
catch (emu_fatalerror const &error)
|
||||||
|
{
|
||||||
|
// the exception will print its own message before we get here
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user