From 5889307f4cae1a1ff04eba1631853b605283aaf8 Mon Sep 17 00:00:00 2001 From: Derek Foreman Date: Tue, 13 Nov 2018 13:26:13 -0600 Subject: [PATCH] eet: Don't add duplicate hashes to eet freelist The eet freelist code de-duplicates pointers, so passing duplicates is just fine, however it does waste time doing the de-dup. We know when we have a duplicate anyway, so save the time. Differential Revision: https://phab.enlightenment.org/D7279 Signed-off-by: Derek Foreman --- src/lib/eet/eet_data.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib/eet/eet_data.c b/src/lib/eet/eet_data.c index 4333559253..cf3e72d3cb 100644 --- a/src/lib/eet/eet_data.c +++ b/src/lib/eet/eet_data.c @@ -3931,9 +3931,12 @@ eet_data_get_hash(Eet_Free_Context *context, if (edd) { + void *oldhash = hash; + hash = edd->func.hash_add(hash, key, data_ret); *ptr = hash; - _eet_freelist_hash_add(context, hash); + if (oldhash != hash) + _eet_freelist_hash_add(context, hash); } else eet_node_hash_add(*((Eet_Node **)data), echnk->name, key, data_ret);