# UNDF: UNDF-2026-000001061 --- a/src/core/hle/service/am/am.cpp +++ b/src/core/hle/service/am/am.cpp @@ -1,6 +1,7 @@ // Copyright Citra Emulator Project / Azahar Emulator Project // Licensed under GPLv2 or any later version // Refer to the license.txt file included. +#include // ... (other includes unchanged) @@ -3728,8 +3728,10 @@ void Module::Interface::CommitImportTitlesImpl(Kernel::HLERequestContext& ctx, auto& title_id_buf = rp.PopMappedBuffer(); std::vector title_ids(title_id_buf.GetSize() / sizeof(u64)); title_id_buf.Read(title_ids.data(), 0, title_id_buf.GetSize()); + // Build a hash set for O(1) membership test instead of O(T) per lookup. + const std::unordered_set title_id_set(title_ids.begin(), title_ids.end()); + for (auto& key_value : am->import_content_contexts) { - if (std::find(title_ids.begin(), title_ids.end(), key_value.first) != title_ids.end() && + if (title_id_set.count(key_value.first) && key_value.second.state == ImportTitleContextState::WAITING_FOR_COMMIT) { key_value.second.state = ImportTitleContextState::NEEDS_CLEANUP; } }