summaryrefslogtreecommitdiffstatshomepage
path: root/src/frontend/mame/ui/auditmenu.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend/mame/ui/auditmenu.cpp')
-rw-r--r--src/frontend/mame/ui/auditmenu.cpp11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/frontend/mame/ui/auditmenu.cpp b/src/frontend/mame/ui/auditmenu.cpp
index 0349e1c2949..7d5cbfd7305 100644
--- a/src/frontend/mame/ui/auditmenu.cpp
+++ b/src/frontend/mame/ui/auditmenu.cpp
@@ -207,24 +207,21 @@ void menu_audit::audit_fast()
void menu_audit::audit_all()
{
- m_availablesorted.clear();
driver_enumerator enumerator(machine().options());
media_auditor auditor(enumerator);
+ std::vector<bool> available(driver_list::total(), false);
while (enumerator.next())
{
m_current.store(&enumerator.driver());
media_auditor::summary const summary(auditor.audit_media(AUDIT_VALIDATE_FAST));
// if everything looks good, include the driver
- m_availablesorted.emplace_back(enumerator.driver(), (summary == media_auditor::CORRECT) || (summary == media_auditor::BEST_AVAILABLE) || (summary == media_auditor::NONE_NEEDED));
+ available[enumerator.current()] = (summary == media_auditor::CORRECT) || (summary == media_auditor::BEST_AVAILABLE) || (summary == media_auditor::NONE_NEEDED);
++m_audited;
}
- // sort
- std::stable_sort(
- m_availablesorted.begin(),
- m_availablesorted.end(),
- [] (ui_system_info const &a, ui_system_info const &b) { return sorted_game_list(a.driver, b.driver); });
+ for (ui_system_info &info : m_availablesorted)
+ info.available = available[info.index];
}
void menu_audit::save_available_machines()