diff options
Diffstat (limited to 'src/frontend/mame/ui/auditmenu.cpp')
-rw-r--r-- | src/frontend/mame/ui/auditmenu.cpp | 11 |
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() |