summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2022-09-01 14:51:42 -0400
committer AJR <ajrhacker@users.noreply.github.com>2022-09-01 14:53:58 -0400
commit67be13960b2fffa5460c3e5dbb0a7f9736b87d3e (patch)
treea9a6ebd24ae2173277864d80979d740d3049ff16 /src/emu
parent4f49312c460f2b7ba31c7eaa3b65cce632e5bdd2 (diff)
Validate slot cards only once per device type during 'quick' validation passes, which were taking rather long for some drivers (e.g. at.cpp)
Diffstat (limited to 'src/emu')
-rw-r--r--src/emu/validity.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/emu/validity.cpp b/src/emu/validity.cpp
index fa80e36d5f2..e2178c522f3 100644
--- a/src/emu/validity.cpp
+++ b/src/emu/validity.cpp
@@ -1870,6 +1870,7 @@ void validity_checker::validate_begin()
m_defstr_map.clear();
m_region_map.clear();
m_ioport_set.clear();
+ m_slotcard_set.clear();
// reset internal state
m_errors = 0;
@@ -2549,6 +2550,10 @@ void validity_checker::validate_devices(machine_config &config)
if (slot->default_option() != nullptr && option.first == slot->default_option())
continue;
+ // if we need to save time, instantiate and validate each slot card type at most once
+ if (m_quick && !m_slotcard_set.insert(option.second->devtype().shortname()).second)
+ continue;
+
m_checking_card = true;
device_t *card;
{