summaryrefslogtreecommitdiff
path: root/src/delta/delta.c
diff options
context:
space:
mode:
authorMichal Schmidt <mschmidt@redhat.com>2014-08-13 01:00:18 +0200
committerMichal Schmidt <mschmidt@redhat.com>2014-09-15 16:08:50 +0200
commitd5099efc47d4e6ac60816b5381a5f607ab03f06e (patch)
tree661308aae8a0885e90da25874e7df3e795532356 /src/delta/delta.c
parentf44541bc934c6e2b02155559e9eeb17a13a09558 (diff)
downloadsystemd-d5099efc47d4e6ac60816b5381a5f607ab03f06e.tar.gz
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.
Diffstat (limited to 'src/delta/delta.c')
-rw-r--r--src/delta/delta.c8
1 files changed, 4 insertions, 4 deletions
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;