mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-04-10 16:18:56 +02:00
mainly doing this to reduce memory footprint; we all know how nice ankerl::unordered_dense is in theory 4x faster - in practice these maps arent that "hot" anyways so not likely to have much perf gained i just want to reduce mem fragmentation to ease my porting process, plus it helps other platforms as well (ahem weak Mediatek devices) :) Signed-off-by: lizzie <lizzie@eden-emu.dev> Co-authored-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3442 Reviewed-by: DraVee <dravee@eden-emu.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
26 lines
945 B
Diff
26 lines
945 B
Diff
From b3622608433c183ba868a1dc8dd9cf285eb3b916 Mon Sep 17 00:00:00 2001
|
|
From: Dario Petrillo <dario.pk1@gmail.com>
|
|
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<is_map_v<T>, base_table_type_map<T>, bas
|
|
// modifiers //////////////////////////////////////////////////////////////
|
|
|
|
void clear() {
|
|
- m_values.clear();
|
|
- clear_buckets();
|
|
+ if (!empty()) {
|
|
+ m_values.clear();
|
|
+ clear_buckets();
|
|
+ }
|
|
}
|
|
|
|
auto insert(value_type const& value) -> std::pair<iterator, bool> {
|