diff options
| author | crueter <crueter@eden-emu.dev> | 2026-08-31 02:58:09 +0200 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2026-08-31 02:58:09 +0200 |
| commit | 7fda6dde73ab9fa1eab40d43c90720a1d9ba054f (patch) | |
| tree | 12753135a33c3002ecb35734ac7c79adc5de85b7 /src/core | |
| parent | 106a61c9434b8d61ab8cde0170f6fcac403b28f1 (diff) | |
[common] Switch to boost::unordered_flat containers (#4326)
Replaces all instances of ankerl's unordered map/set with boost's
`unordered_flat_*` classes. This uses std::hash since boost::hash is
actually a lot slower.
Also adds an abstraction layer in `Common` so future changes are quicker
and easier.
Other implementation details:
- ankerl provided hash specializations for tuple and pair, so those were
ported here
- std::erase_if doesn't work on boost, so just used the ADL'd erase_if
This should be about equal or superior performance as unordered_dense for everything except iteration.
Signed-off-by: crueter <crueter@eden-emu.dev>
- [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions).
- [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md)
- [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability.
-------------------
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4326
Reviewed-by: Lizzie and Samuel <lizzie@eden-emu.dev>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Diffstat (limited to 'src/core')
29 files changed, 67 insertions, 66 deletions
diff --git a/src/core/arm/dynarmic/arm_dynarmic_64.h b/src/core/arm/dynarmic/arm_dynarmic_64.h index 6d0760986f..4c8570913f 100644 --- a/src/core/arm/dynarmic/arm_dynarmic_64.h +++ b/src/core/arm/dynarmic/arm_dynarmic_64.h @@ -8,7 +8,7 @@ #include <atomic> #include <memory> -#include <ankerl/unordered_dense.h> +#include "common/container/unordered_map.h" #include <dynarmic/interface/A64/a64.h> #include <dynarmic/interface/code_page.h> diff --git a/src/core/arm/nce/patcher.h b/src/core/arm/nce/patcher.h index 04d8534351..a3b314000c 100644 --- a/src/core/arm/nce/patcher.h +++ b/src/core/arm/nce/patcher.h @@ -4,7 +4,7 @@ #pragma once #include <span> -#include <ankerl/unordered_dense.h> +#include "common/container/unordered_map.h" #include <vector> #include <oaknut/code_block.hpp> #include <oaknut/oaknut.hpp> @@ -46,7 +46,7 @@ enum class PatchMode : u32 { using ModuleTextAddress = u64; using PatchTextAddress = u64; -using EntryTrampolines = ankerl::unordered_dense::map<ModuleTextAddress, PatchTextAddress>; +using EntryTrampolines = ::Common::unordered_map<ModuleTextAddress, PatchTextAddress>; class Patcher { public: diff --git a/src/core/file_sys/ips_layer.cpp b/src/core/file_sys/ips_layer.cpp index 7207fb9f7f..1df2f9dadd 100644 --- a/src/core/file_sys/ips_layer.cpp +++ b/src/core/file_sys/ips_layer.cpp @@ -8,7 +8,7 @@ #include <utility> #include <span> #include <cctype> -#include <ankerl/unordered_dense.h> +#include "common/container/unordered_map.h" #include "common/hex_util.h" #include "common/logging.h" @@ -104,7 +104,7 @@ struct IPSwitchRecord { size_t count; }; struct IPSwitchCompiler::IPSwitchPatch { - ankerl::unordered_dense::map<u32, IPSwitchRecord> records; + ::Common::unordered_map<u32, IPSwitchRecord> records; bool enabled; }; diff --git a/src/core/file_sys/registered_cache.cpp b/src/core/file_sys/registered_cache.cpp index 83f5e265dd..ce851e4d38 100644 --- a/src/core/file_sys/registered_cache.cpp +++ b/src/core/file_sys/registered_cache.cpp @@ -566,7 +566,7 @@ VirtualFile RegisteredCache::GetFileAtID(NcaID id) const { return file; } -static std::optional<NcaID> CheckMapForContentRecord(const ankerl::unordered_dense::map<u64, CNMT>& map, u64 title_id, ContentRecordType type) { +static std::optional<NcaID> CheckMapForContentRecord(const ::Common::unordered_map<u64, CNMT>& map, u64 title_id, ContentRecordType type) { auto cmnt_iter = map.find(title_id); u8 id_offset = 0; diff --git a/src/core/file_sys/registered_cache.h b/src/core/file_sys/registered_cache.h index 0cc6cb56b4..a8e60ad470 100644 --- a/src/core/file_sys/registered_cache.h +++ b/src/core/file_sys/registered_cache.h @@ -12,7 +12,7 @@ #include <optional> #include <string> #include <vector> -#include <ankerl/unordered_dense.h> +#include "common/container/unordered_map.h" #include <boost/container/flat_map.hpp> #include "common/common_types.h" #include "core/crypto/key_manager.h" @@ -209,11 +209,11 @@ private: ContentProviderParsingFunction parser; // maps tid -> NcaID of meta - ankerl::unordered_dense::map<u64, NcaID> meta_id; + ::Common::unordered_map<u64, NcaID> meta_id; // maps tid -> meta - ankerl::unordered_dense::map<u64, CNMT> meta; + ::Common::unordered_map<u64, CNMT> meta; // maps tid -> meta for CNMT in yuzu_meta - ankerl::unordered_dense::map<u64, CNMT> yuzu_meta; + ::Common::unordered_map<u64, CNMT> yuzu_meta; }; enum class ContentProviderUnionSlot { @@ -313,8 +313,8 @@ private: void ProcessXCI(const VirtualFile& file); std::vector<VirtualDir> load_dirs; - ankerl::unordered_dense::map<std::tuple<u64, ContentRecordType, TitleType>, VirtualFile> entries; - ankerl::unordered_dense::map<u64, u32> versions; + ::Common::unordered_map<std::tuple<u64, ContentRecordType, TitleType>, VirtualFile> entries; + ::Common::unordered_map<u64, u32> versions; std::vector<ExternalUpdateEntry> multi_version_entries; }; diff --git a/src/core/file_sys/vfs/vfs_layered.cpp b/src/core/file_sys/vfs/vfs_layered.cpp index 8dabe03e16..c650b45f4c 100644 --- a/src/core/file_sys/vfs/vfs_layered.cpp +++ b/src/core/file_sys/vfs/vfs_layered.cpp @@ -6,7 +6,7 @@ #include <algorithm> #include <set> -#include <ankerl/unordered_dense.h> +#include "common/container/unordered_set.h" #include <utility> #include "core/file_sys/vfs/vfs_layered.h" @@ -63,7 +63,7 @@ std::string LayeredVfsDirectory::GetFullPath() const { std::vector<VirtualFile> LayeredVfsDirectory::GetFiles() const { std::vector<VirtualFile> out; - ankerl::unordered_dense::set<std::string> out_names; + ::Common::unordered_set<std::string> out_names; for (const auto& layer : dirs) { for (auto& file : layer->GetFiles()) { @@ -79,7 +79,7 @@ std::vector<VirtualFile> LayeredVfsDirectory::GetFiles() const { std::vector<VirtualDir> LayeredVfsDirectory::GetSubdirectories() const { std::vector<VirtualDir> out; - ankerl::unordered_dense::set<std::string> out_names; + ::Common::unordered_set<std::string> out_names; for (const auto& layer : dirs) { for (const auto& sd : layer->GetSubdirectories()) { diff --git a/src/core/hle/kernel/k_process.h b/src/core/hle/kernel/k_process.h index c861a9ea51..b5693751c3 100644 --- a/src/core/hle/kernel/k_process.h +++ b/src/core/hle/kernel/k_process.h @@ -78,7 +78,7 @@ private: std::array<DebugWatchpoint, Core::Hardware::NUM_WATCHPOINTS> m_watchpoints{}; std::map<KProcessAddress, u64> m_debug_page_refcounts{}; #ifdef HAS_NCE - ankerl::unordered_dense::map<u64, u64> m_post_handlers{}; + ::Common::unordered_map<u64, u64> m_post_handlers{}; #endif std::unique_ptr<Core::ExclusiveMonitor> m_exclusive_monitor; Core::Memory::Memory m_memory; @@ -494,7 +494,7 @@ public: static void Switch(KernelCore& kernel, KProcess* cur_process, KProcess* next_process); #ifdef HAS_NCE - ankerl::unordered_dense::map<u64, u64>& GetPostHandlers() noexcept { + ::Common::unordered_map<u64, u64>& GetPostHandlers() noexcept { return m_post_handlers; } #endif diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp index a739e7020c..4f1d849209 100644 --- a/src/core/hle/kernel/kernel.cpp +++ b/src/core/hle/kernel/kernel.cpp @@ -10,7 +10,8 @@ #include <functional> #include <memory> #include <thread> -#include <ankerl/unordered_dense.h> +#include "common/container/unordered_map.h" +#include "common/container/unordered_set.h" #include <utility> #include "common/assert.h" @@ -792,8 +793,8 @@ struct KernelCore::Impl { std::optional<KObjectNameGlobalData> object_name_global_data; - ankerl::unordered_dense::set<KAutoObject*> registered_objects; - ankerl::unordered_dense::set<KAutoObject*> registered_in_use_objects; + ::Common::unordered_set<KAutoObject*> registered_objects; + ::Common::unordered_set<KAutoObject*> registered_in_use_objects; std::mutex server_lock; std::vector<std::unique_ptr<Service::ServerManager>> server_managers; diff --git a/src/core/hle/kernel/kernel.h b/src/core/hle/kernel/kernel.h index 04790c8b38..2d44654f4d 100644 --- a/src/core/hle/kernel/kernel.h +++ b/src/core/hle/kernel/kernel.h @@ -11,7 +11,7 @@ #include <list> #include <memory> #include <string> -#include <ankerl/unordered_dense.h> +#include "common/container/unordered_map.h" #include <vector> #include "common/polyfill_thread.h" diff --git a/src/core/hle/service/am/frontend/applet_web_browser_types.h b/src/core/hle/service/am/frontend/applet_web_browser_types.h index 3574568f6f..80e7fdb0bd 100644 --- a/src/core/hle/service/am/frontend/applet_web_browser_types.h +++ b/src/core/hle/service/am/frontend/applet_web_browser_types.h @@ -7,7 +7,7 @@ #pragma once #include <array> -#include <ankerl/unordered_dense.h> +#include "common/container/unordered_map.h" #include <vector> #include "common/common_funcs.h" @@ -176,6 +176,6 @@ struct WebCommonReturnValue { }; static_assert(sizeof(WebCommonReturnValue) == 0x1010, "WebCommonReturnValue has incorrect size."); -using WebArgInputTLVMap = ankerl::unordered_dense::map<WebArgInputTLVType, std::vector<u8>>; +using WebArgInputTLVMap = ::Common::unordered_map<WebArgInputTLVType, std::vector<u8>>; } // namespace Service::AM::Frontend diff --git a/src/core/hle/service/bcat/news/builtin_news.cpp b/src/core/hle/service/bcat/news/builtin_news.cpp index 2a7756a155..bf4e989fb8 100644 --- a/src/core/hle/service/bcat/news/builtin_news.cpp +++ b/src/core/hle/service/bcat/news/builtin_news.cpp @@ -40,8 +40,8 @@ std::vector<u8> default_logo_small; std::vector<u8> default_logo_large; bool default_logos_loaded = false; -ankerl::unordered_dense::map<std::string, std::vector<u8>> news_images_small; -ankerl::unordered_dense::map<std::string, std::vector<u8>> news_images_large; +::Common::unordered_map<std::string, std::vector<u8>> news_images_small; +::Common::unordered_map<std::string, std::vector<u8>> news_images_large; std::mutex images_mutex; diff --git a/src/core/hle/service/bcat/news/news_storage.h b/src/core/hle/service/bcat/news/news_storage.h index 531e2adb9a..3f5f366cc2 100644 --- a/src/core/hle/service/bcat/news/news_storage.h +++ b/src/core/hle/service/bcat/news/news_storage.h @@ -12,7 +12,7 @@ #include <optional> #include <span> #include <string> -#include <ankerl/unordered_dense.h> +#include "common/container/unordered_map.h" #include <vector> #include "common/common_types.h" @@ -93,7 +93,7 @@ private: static s64 Now(); mutable std::mutex mtx; - ankerl::unordered_dense::map<std::string, StoredNews> items; + ::Common::unordered_map<std::string, StoredNews> items; size_t open_counter{}; }; diff --git a/src/core/hle/service/caps/caps_manager.h b/src/core/hle/service/caps/caps_manager.h index 22f5672e47..af2d22697b 100644 --- a/src/core/hle/service/caps/caps_manager.h +++ b/src/core/hle/service/caps/caps_manager.h @@ -6,7 +6,7 @@ #pragma once -#include <ankerl/unordered_dense.h> +#include "common/container/unordered_map.h" #include "common/fs/fs.h" #include "core/hle/result.h" @@ -88,7 +88,7 @@ private: AlbumFileDateTime ConvertToAlbumDateTime(u64 posix_time) const; bool is_mounted{}; - ankerl::unordered_dense::map<AlbumFileId, std::filesystem::path> album_files; + ::Common::unordered_map<AlbumFileId, std::filesystem::path> album_files; Core::System& system; }; diff --git a/src/core/hle/service/ldn/lan_discovery.h b/src/core/hle/service/ldn/lan_discovery.h index fb24608ae1..5d0642bd0f 100644 --- a/src/core/hle/service/ldn/lan_discovery.h +++ b/src/core/hle/service/ldn/lan_discovery.h @@ -15,7 +15,7 @@ #include <random> #include <span> #include <thread> -#include <ankerl/unordered_dense.h> +#include "common/container/unordered_map.h" #include "common/logging.h" #include "common/socket_types.h" @@ -119,7 +119,7 @@ protected: std::array<LanStation, StationCountMax> stations; std::array<NodeLatestUpdate, NodeCountMax> node_changes{}; std::array<u8, NodeCountMax> node_last_states{}; - ankerl::unordered_dense::map<MacAddress, NetworkInfo, MACAddressHash> scan_results{}; + ::Common::unordered_map<MacAddress, NetworkInfo, MACAddressHash> scan_results{}; NodeInfo node_info{}; NetworkInfo network_info{}; State state{State::None}; diff --git a/src/core/hle/service/lm/lm.cpp b/src/core/hle/service/lm/lm.cpp index 1d9a610b30..d631a6dd80 100644 --- a/src/core/hle/service/lm/lm.cpp +++ b/src/core/hle/service/lm/lm.cpp @@ -7,7 +7,7 @@ #include <string> #include <optional> -#include <ankerl/unordered_dense.h> +#include "common/container/unordered_map.h" #include <boost/container_hash/hash.hpp> #include "common/logging.h" #include "core/core.h" @@ -331,7 +331,7 @@ private: }; static_assert(sizeof(LogPacketHeader) == 0x18, "LogPacketHeader is an invalid size"); - ankerl::unordered_dense::map<LogPacketHeaderEntry, std::vector<u8>> entries{}; + ::Common::unordered_map<LogPacketHeaderEntry, std::vector<u8>> entries{}; LogDestination destination{LogDestination::All}; }; diff --git a/src/core/hle/service/nifm/nifm.cpp b/src/core/hle/service/nifm/nifm.cpp index 4408abae4d..898b9ecfb2 100644 --- a/src/core/hle/service/nifm/nifm.cpp +++ b/src/core/hle/service/nifm/nifm.cpp @@ -23,7 +23,7 @@ #include <mutex> #include <optional> #include <thread> -#include <ankerl/unordered_dense.h> +#include "common/container/unordered_map.h" #include <common/settings.h> #ifdef _WIN32 diff --git a/src/core/hle/service/nvdrv/core/container.h b/src/core/hle/service/nvdrv/core/container.h index 62404e14a7..bc60636ac5 100644 --- a/src/core/hle/service/nvdrv/core/container.h +++ b/src/core/hle/service/nvdrv/core/container.h @@ -9,7 +9,7 @@ #include <deque> #include <memory> -#include <ankerl/unordered_dense.h> +#include "common/container/unordered_map.h" #include "core/device_memory_manager.h" #include "core/hle/service/nvdrv/nvdata.h" diff --git a/src/core/hle/service/nvdrv/core/nvmap.h b/src/core/hle/service/nvdrv/core/nvmap.h index 17b9ccd1c7..98b1d5a6cc 100644 --- a/src/core/hle/service/nvdrv/core/nvmap.h +++ b/src/core/hle/service/nvdrv/core/nvmap.h @@ -12,7 +12,7 @@ #include <memory> #include <mutex> #include <optional> -#include <ankerl/unordered_dense.h> +#include "common/container/unordered_map.h" #include <assert.h> #include "common/bit_field.h" @@ -161,7 +161,7 @@ private: std::list<std::shared_ptr<Handle>> unmap_queue{}; std::mutex unmap_queue_lock{}; //!< Protects access to `unmap_queue` - ankerl::unordered_dense::map<Handle::Id, std::shared_ptr<Handle>> + ::Common::unordered_map<Handle::Id, std::shared_ptr<Handle>> handles{}; //!< Main owning map of handles std::mutex handles_lock; //!< Protects access to `handles` diff --git a/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.h b/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.h index b8ae57e1b4..b13b1c9efa 100644 --- a/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.h +++ b/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.h @@ -13,7 +13,7 @@ #include <memory> #include <mutex> #include <optional> -#include <ankerl/unordered_dense.h> +#include "common/container/unordered_set.h" #include <vector> #include "common/address_space.h" @@ -113,7 +113,7 @@ private: }; static_assert(sizeof(IoctlRemapEntry) == 20, "IoctlRemapEntry is incorrect size"); - ankerl::unordered_dense::set<s64_le> map_buffer_offsets{}; + ::Common::unordered_set<s64_le> map_buffer_offsets{}; struct IoctlMapBufferEx { MappingFlags flags{}; // bit0: fixed_offset, bit2: cacheable diff --git a/src/core/hle/service/nvdrv/devices/nvhost_gpu.h b/src/core/hle/service/nvdrv/devices/nvhost_gpu.h index c49aaa54a2..70a6b1bd68 100644 --- a/src/core/hle/service/nvdrv/devices/nvhost_gpu.h +++ b/src/core/hle/service/nvdrv/devices/nvhost_gpu.h @@ -217,7 +217,7 @@ private: NvCore::SyncpointManager& syncpoint_manager; NvCore::NvMap& nvmap; std::shared_ptr<Tegra::Control::ChannelState> channel_state; - ankerl::unordered_dense::map<DeviceFD, NvCore::SessionId> sessions; + ::Common::unordered_map<DeviceFD, NvCore::SessionId> sessions; u32 channel_syncpoint; std::mutex channel_mutex; diff --git a/src/core/hle/service/nvdrv/devices/nvhost_nvdec_common.h b/src/core/hle/service/nvdrv/devices/nvhost_nvdec_common.h index 8b3b7ee285..7c8d5e0eb1 100644 --- a/src/core/hle/service/nvdrv/devices/nvhost_nvdec_common.h +++ b/src/core/hle/service/nvdrv/devices/nvhost_nvdec_common.h @@ -7,7 +7,7 @@ #pragma once #include <deque> -#include <ankerl/unordered_dense.h> +#include "common/container/unordered_map.h" #include <vector> #include "common/common_types.h" @@ -138,7 +138,7 @@ protected: NvCore::NvMap& nvmap; NvCore::ChannelType channel_type; std::array<u32, MaxSyncPoints> device_syncpoints{}; - ankerl::unordered_dense::map<DeviceFD, NvCore::SessionId> sessions; + ::Common::unordered_map<DeviceFD, NvCore::SessionId> sessions; }; }; // namespace Devices } // namespace Service::Nvidia diff --git a/src/core/hle/service/nvdrv/devices/nvmap.h b/src/core/hle/service/nvdrv/devices/nvmap.h index 19c5b479df..16ad8b3414 100644 --- a/src/core/hle/service/nvdrv/devices/nvmap.h +++ b/src/core/hle/service/nvdrv/devices/nvmap.h @@ -7,7 +7,7 @@ #pragma once #include <memory> -#include <ankerl/unordered_dense.h> +#include "common/container/unordered_map.h" #include <vector> #include "common/common_funcs.h" #include "common/common_types.h" @@ -118,7 +118,7 @@ private: NvCore::Container& container; NvCore::NvMap& file; - ankerl::unordered_dense::map<DeviceFD, NvCore::SessionId> sessions; + ::Common::unordered_map<DeviceFD, NvCore::SessionId> sessions; }; } // namespace Service::Nvidia::Devices diff --git a/src/core/hle/service/nvdrv/nvdrv.h b/src/core/hle/service/nvdrv/nvdrv.h index 329ac91c41..f503f108c3 100644 --- a/src/core/hle/service/nvdrv/nvdrv.h +++ b/src/core/hle/service/nvdrv/nvdrv.h @@ -12,7 +12,7 @@ #include <memory> #include <span> #include <string> -#include <ankerl/unordered_dense.h> +#include "common/container/unordered_map.h" #include "common/common_types.h" #include "core/hle/service/kernel_helpers.h" @@ -103,7 +103,7 @@ private: /// Id to use for the next open file descriptor. DeviceFD next_fd = 1; - using FilesContainerType = ankerl::unordered_dense::map<DeviceFD, std::shared_ptr<Devices::nvdevice>>; + using FilesContainerType = ::Common::unordered_map<DeviceFD, std::shared_ptr<Devices::nvdevice>>; /// Mapping of file descriptors to the devices they reference. FilesContainerType open_files; @@ -111,7 +111,7 @@ private: EventInterface events_interface; - ankerl::unordered_dense::map<std::string, std::function<FilesContainerType::iterator(DeviceFD)>> builders; + ::Common::unordered_map<std::string, std::function<FilesContainerType::iterator(DeviceFD)>> builders; }; void LoopProcess(Core::System& system); diff --git a/src/core/hle/service/nvnflinger/hos_binder_driver_server.h b/src/core/hle/service/nvnflinger/hos_binder_driver_server.h index b66f1776b0..d6ea945004 100644 --- a/src/core/hle/service/nvnflinger/hos_binder_driver_server.h +++ b/src/core/hle/service/nvnflinger/hos_binder_driver_server.h @@ -8,7 +8,7 @@ #include <memory> #include <mutex> -#include <ankerl/unordered_dense.h> +#include "common/container/unordered_map.h" #include "common/common_types.h" #include "core/hle/service/nvnflinger/binder.h" @@ -39,8 +39,8 @@ private: mutable std::mutex lock; s32 last_id = 0; - ankerl::unordered_dense::map<s32, std::shared_ptr<android::IBinder>> binders; - ankerl::unordered_dense::map<s32, RefCounts> refcounts; + ::Common::unordered_map<s32, std::shared_ptr<android::IBinder>> binders; + ::Common::unordered_map<s32, RefCounts> refcounts; }; } // namespace Service::Nvnflinger diff --git a/src/core/hle/service/olsc/daemon_controller.h b/src/core/hle/service/olsc/daemon_controller.h index 5f978ab153..70f3d9e235 100644 --- a/src/core/hle/service/olsc/daemon_controller.h +++ b/src/core/hle/service/olsc/daemon_controller.h @@ -6,7 +6,7 @@ #pragma once -#include <ankerl/unordered_dense.h> +#include "common/container/unordered_map.h" #include "common/uuid.h" #include "core/hle/service/cmif_types.h" @@ -56,10 +56,10 @@ private: } }; - ankerl::unordered_dense::map<AppKey, bool, AppKeyHash> app_auto_transfer_{}; - ankerl::unordered_dense::map<Common::UUID, bool> global_auto_upload_{}; - ankerl::unordered_dense::map<Common::UUID, bool> global_auto_download_{}; - ankerl::unordered_dense::map<AppKey, u8, AppKeyHash> autonomy_task_status_{}; + ::Common::unordered_map<AppKey, bool, AppKeyHash> app_auto_transfer_{}; + ::Common::unordered_map<Common::UUID, bool> global_auto_upload_{}; + ::Common::unordered_map<Common::UUID, bool> global_auto_download_{}; + ::Common::unordered_map<AppKey, u8, AppKeyHash> autonomy_task_status_{}; }; } // namespace Service::OLSC diff --git a/src/core/hle/service/service.h b/src/core/hle/service/service.h index e52a832a1e..df56b69847 100644 --- a/src/core/hle/service/service.h +++ b/src/core/hle/service/service.h @@ -8,7 +8,7 @@ #include <cstddef> #include <mutex> -#include <ankerl/unordered_dense.h> +#include "common/container/unordered_map.h" #include "common/common_types.h" #include "core/hle/service/hle_ipc.h" @@ -99,8 +99,8 @@ private: void ReportUnimplementedFunction(HLERequestContext& ctx, const FunctionInfoBase* info); protected: - ankerl::unordered_dense::map<u32, FunctionInfoBase> handlers; - ankerl::unordered_dense::map<u32, FunctionInfoBase> handlers_tipc; + ::Common::unordered_map<u32, FunctionInfoBase> handlers; + ::Common::unordered_map<u32, FunctionInfoBase> handlers_tipc; /// Used to gain exclusive access to the service members, e.g. from CoreTiming thread. std::mutex lock_service; /// System context that the service operates under. diff --git a/src/core/hle/service/sm/sm.h b/src/core/hle/service/sm/sm.h index b566452ad7..c520a46fb2 100644 --- a/src/core/hle/service/sm/sm.h +++ b/src/core/hle/service/sm/sm.h @@ -10,7 +10,7 @@ #include <memory> #include <mutex> #include <string> -#include <ankerl/unordered_dense.h> +#include "common/container/unordered_map.h" #include <concepts> #include "core/hle/kernel/k_port.h" @@ -100,8 +100,8 @@ private: /// Map of registered services, retrieved using GetServicePort. mutable std::mutex lock; - ankerl::unordered_dense::map<std::string, SessionRequestHandlerFactory> registered_services; - ankerl::unordered_dense::map<std::string, Kernel::KClientPort*> service_ports; + ::Common::unordered_map<std::string, SessionRequestHandlerFactory> registered_services; + ::Common::unordered_map<std::string, Kernel::KClientPort*> service_ports; /// Kernel context Kernel::KernelCore& kernel; diff --git a/src/core/hle/service/vi/conductor.h b/src/core/hle/service/vi/conductor.h index 7c93c230f7..fdccd48670 100644 --- a/src/core/hle/service/vi/conductor.h +++ b/src/core/hle/service/vi/conductor.h @@ -7,7 +7,7 @@ #pragma once #include <memory> -#include <ankerl/unordered_dense.h> +#include "common/container/unordered_map.h" #include "common/common_types.h" #include "common/polyfill_thread.h" @@ -49,7 +49,7 @@ private: private: Core::System& m_system; Container& m_container; - ankerl::unordered_dense::map<u64, VsyncManager> m_vsync_managers; + ::Common::unordered_map<u64, VsyncManager> m_vsync_managers; std::shared_ptr<Core::Timing::EventType> m_event; Common::Event m_signal; std::jthread m_thread; diff --git a/src/core/launch_timestamp_cache.cpp b/src/core/launch_timestamp_cache.cpp index c58ffa1d5e..2b030f20b3 100644 --- a/src/core/launch_timestamp_cache.cpp +++ b/src/core/launch_timestamp_cache.cpp @@ -8,7 +8,7 @@ #include <mutex> #include <sstream> #include <string> -#include <ankerl/unordered_dense.h> +#include "common/container/unordered_map.h" #include <fmt/format.h> #include <nlohmann/json.hpp> @@ -21,8 +21,8 @@ namespace Core::LaunchTimestampCache { namespace { -using CacheMap = ankerl::unordered_dense::map<u64, s64>; -using CountMap = ankerl::unordered_dense::map<u64, u64>; +using CacheMap = ::Common::unordered_map<u64, s64>; +using CountMap = ::Common::unordered_map<u64, u64>; std::mutex g_mutex; CacheMap g_cache; |
