From 2a7a03053e570e253beeeef601e836ecca0d1cf3 Mon Sep 17 00:00:00 2001 From: Caio Oliveira Date: Sat, 7 Feb 2026 01:47:25 -0300 Subject: [PATCH] DONOTMERGE --- ...-memset-when-clearing-an-empty-table.patch | 26 +++++++++++++++++++ CMakeLists.txt | 1 + externals/cpmfile.json | 3 ++- 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 .patch/unordered-dense/0002-avoid-memset-when-clearing-an-empty-table.patch diff --git a/.patch/unordered-dense/0002-avoid-memset-when-clearing-an-empty-table.patch b/.patch/unordered-dense/0002-avoid-memset-when-clearing-an-empty-table.patch new file mode 100644 index 0000000000..f7d7c7ebe2 --- /dev/null +++ b/.patch/unordered-dense/0002-avoid-memset-when-clearing-an-empty-table.patch @@ -0,0 +1,26 @@ +From b3622608433c183ba868a1dc8dd9cf285eb3b916 Mon Sep 17 00:00:00 2001 +From: Dario Petrillo +Date: Thu, 27 Nov 2025 23:12:38 +0100 +Subject: [PATCH] avoid extra memset when clearing an empty table + +--- + include/ankerl/unordered_dense.h | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/include/ankerl/unordered_dense.h b/include/ankerl/unordered_dense.h +index 0835342..4938212 100644 +--- a/include/ankerl/unordered_dense.h ++++ b/include/ankerl/unordered_dense.h +@@ -1490,8 +1490,10 @@ class table : public std::conditional_t, base_table_type_map, bas + // modifiers ////////////////////////////////////////////////////////////// + + void clear() { +- m_values.clear(); +- clear_buckets(); ++ if (!empty()) { ++ m_values.clear(); ++ clear_buckets(); ++ } + } + + auto insert(value_type const& value) -> std::pair { diff --git a/CMakeLists.txt b/CMakeLists.txt index 0568a49ec8..118814c6c6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -577,6 +577,7 @@ add_subdirectory(externals) find_package(enet) find_package(MbedTLS) find_package(unordered_dense REQUIRED) +set(ordered_dense_FORCE_BUNDLED true) if (ARCHITECTURE_x86 OR ARCHITECTURE_x86_64) find_package(xbyak) diff --git a/externals/cpmfile.json b/externals/cpmfile.json index b4960b5e6a..41406b6320 100644 --- a/externals/cpmfile.json +++ b/externals/cpmfile.json @@ -96,7 +96,8 @@ "find_args": "CONFIG", "git_version": "4.8.1", "patches": [ - "0001-fix-macos.patch" + "0001-fix-macos.patch", + "0002-avoid-memset-when-clearing-an-empty-table.patch" ] }, "mbedtls": {