aboutsummaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorcrueter <crueter@eden-emu.dev>2026-08-31 02:58:09 +0200
committercrueter <crueter@eden-emu.dev>2026-08-31 02:58:09 +0200
commit7fda6dde73ab9fa1eab40d43c90720a1d9ba054f (patch)
tree12753135a33c3002ecb35734ac7c79adc5de85b7 /src/core
parent106a61c9434b8d61ab8cde0170f6fcac403b28f1 (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')
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic_64.h2
-rw-r--r--src/core/arm/nce/patcher.h4
-rw-r--r--src/core/file_sys/ips_layer.cpp4
-rw-r--r--src/core/file_sys/registered_cache.cpp2
-rw-r--r--src/core/file_sys/registered_cache.h12
-rw-r--r--src/core/file_sys/vfs/vfs_layered.cpp6
-rw-r--r--src/core/hle/kernel/k_process.h4
-rw-r--r--src/core/hle/kernel/kernel.cpp7
-rw-r--r--src/core/hle/kernel/kernel.h2
-rw-r--r--src/core/hle/service/am/frontend/applet_web_browser_types.h4
-rw-r--r--src/core/hle/service/bcat/news/builtin_news.cpp4
-rw-r--r--src/core/hle/service/bcat/news/news_storage.h4
-rw-r--r--src/core/hle/service/caps/caps_manager.h4
-rw-r--r--src/core/hle/service/ldn/lan_discovery.h4
-rw-r--r--src/core/hle/service/lm/lm.cpp4
-rw-r--r--src/core/hle/service/nifm/nifm.cpp2
-rw-r--r--src/core/hle/service/nvdrv/core/container.h2
-rw-r--r--src/core/hle/service/nvdrv/core/nvmap.h4
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_as_gpu.h4
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_gpu.h2
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_nvdec_common.h4
-rw-r--r--src/core/hle/service/nvdrv/devices/nvmap.h4
-rw-r--r--src/core/hle/service/nvdrv/nvdrv.h6
-rw-r--r--src/core/hle/service/nvnflinger/hos_binder_driver_server.h6
-rw-r--r--src/core/hle/service/olsc/daemon_controller.h10
-rw-r--r--src/core/hle/service/service.h6
-rw-r--r--src/core/hle/service/sm/sm.h6
-rw-r--r--src/core/hle/service/vi/conductor.h4
-rw-r--r--src/core/launch_timestamp_cache.cpp6
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;