From bfc720152a389c8110c814f600125ccf480075ac Mon Sep 17 00:00:00 2001 From: lizzie Date: Sat, 21 Feb 2026 18:38:32 +0100 Subject: [vfs] remove usage of 'dynamic_cast', use ankerl::map for files (#3594) Do I need to writeout everything wrong with `dynamic_cast`? Also the usual std::map -> `ankerl::unordered_dense::map` conversion, seems to work just fine - but of course test that updates/DLCs/mods/cheats/etc are still being applied :) Signed-off-by: lizzie Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3594 Reviewed-by: DraVee Reviewed-by: MaranBr Co-authored-by: lizzie Co-committed-by: lizzie --- src/core/file_sys/patch_manager.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src/core/file_sys/patch_manager.cpp') diff --git a/src/core/file_sys/patch_manager.cpp b/src/core/file_sys/patch_manager.cpp index 86c2076380..44aafb6b34 100644 --- a/src/core/file_sys/patch_manager.cpp +++ b/src/core/file_sys/patch_manager.cpp @@ -143,7 +143,7 @@ VirtualDir PatchManager::PatchExeFS(VirtualDir exefs) const { bool checked_external = false; bool checked_manual = false; - const auto* content_union = dynamic_cast(&content_provider); + const auto* content_union = static_cast(&content_provider); const auto update_tid = GetUpdateTitleID(title_id); if (content_union) { @@ -167,7 +167,7 @@ VirtualDir PatchManager::PatchExeFS(VirtualDir exefs) const { // Also check ManualContentProvider (for Android) if (!checked_external) { - const auto* manual_provider = dynamic_cast( + const auto* manual_provider = static_cast( content_union->GetSlotProvider(ContentProviderUnionSlot::FrontendManual)); if (manual_provider) { const auto manual_update_versions = manual_provider->ListUpdateVersions(update_tid); @@ -243,7 +243,7 @@ VirtualDir PatchManager::PatchExeFS(VirtualDir exefs) const { // Also try ManualContentProvider if (update == nullptr) { - const auto* manual_provider = dynamic_cast( + const auto* manual_provider = static_cast( content_union->GetSlotProvider(ContentProviderUnionSlot::FrontendManual)); if (manual_provider) { auto file = manual_provider->GetEntryForVersion(update_tid, ContentRecordType::Program, *enabled_version); @@ -570,7 +570,7 @@ VirtualFile PatchManager::PatchRomFS(const NCA* base_nca, VirtualFile base_romfs bool checked_external = false; bool checked_manual = false; - const auto* content_union = dynamic_cast(&content_provider); + const auto* content_union = static_cast(&content_provider); if (content_union) { // First, check ExternalContentProvider const auto* external_provider = content_union->GetExternalProvider(); @@ -592,7 +592,7 @@ VirtualFile PatchManager::PatchRomFS(const NCA* base_nca, VirtualFile base_romfs } if (!checked_external) { - const auto* manual_provider = dynamic_cast( + const auto* manual_provider = static_cast( content_union->GetSlotProvider(ContentProviderUnionSlot::FrontendManual)); if (manual_provider) { const auto manual_update_versions = manual_provider->ListUpdateVersions(update_tid); @@ -690,7 +690,7 @@ std::vector PatchManager::GetPatches(VirtualFile update_raw) const { std::vector external_update_patches; - const auto* content_union = dynamic_cast(&content_provider); + const auto* content_union = static_cast(&content_provider); if (content_union) { // First, check ExternalContentProvider for updates @@ -721,7 +721,7 @@ std::vector PatchManager::GetPatches(VirtualFile update_raw) const { } } - const auto* manual_provider = dynamic_cast( + const auto* manual_provider = static_cast( content_union->GetSlotProvider(ContentProviderUnionSlot::FrontendManual)); if (manual_provider && external_update_patches.empty()) { const auto manual_update_versions = manual_provider->ListUpdateVersions(update_tid); -- cgit v1.2.3