From d5099efc47d4e6ac60816b5381a5f607ab03f06e Mon Sep 17 00:00:00 2001 From: Michal Schmidt Date: Wed, 13 Aug 2014 01:00:18 +0200 Subject: hashmap: introduce hash_ops to make struct Hashmap smaller It is redundant to store 'hash' and 'compare' function pointers in struct Hashmap separately. The functions always comprise a pair. Store a single pointer to struct hash_ops instead. systemd keeps hundreds of hashmaps, so this saves a little bit of memory. --- src/delta/delta.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/delta/delta.c') diff --git a/src/delta/delta.c b/src/delta/delta.c index cd8bd35716..91f8592b40 100644 --- a/src/delta/delta.c +++ b/src/delta/delta.c @@ -268,7 +268,7 @@ static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const h = hashmap_get(drops, unit); if (!h) { - h = hashmap_new(string_hash_func, string_compare_func); + h = hashmap_new(&string_hash_ops); if (!h) return -ENOMEM; hashmap_put(drops, unit, h); @@ -372,9 +372,9 @@ static int process_suffix(const char *suffix, const char *onlyprefix) { dropins = nulstr_contains(have_dropins, suffix); - top = hashmap_new(string_hash_func, string_compare_func); - bottom = hashmap_new(string_hash_func, string_compare_func); - drops = hashmap_new(string_hash_func, string_compare_func); + top = hashmap_new(&string_hash_ops); + bottom = hashmap_new(&string_hash_ops); + drops = hashmap_new(&string_hash_ops); if (!top || !bottom || !drops) { r = -ENOMEM; goto finish; -- cgit v1.2.3-54-g00ecf