summaryrefslogtreecommitdiff
path: root/src/sysv-generator
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/sysv-generator
parentf44541bc934c6e2b02155559e9eeb17a13a09558 (diff)
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/sysv-generator')
-rw-r--r--src/sysv-generator/sysv-generator.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/sysv-generator/sysv-generator.c b/src/sysv-generator/sysv-generator.c
index 368d420df3..6c3281ff15 100644
--- a/src/sysv-generator/sysv-generator.c
+++ b/src/sysv-generator/sysv-generator.c
@@ -824,8 +824,7 @@ static int set_dependencies_from_rcnd(LookupPaths lp, Hashmap *all_services) {
MAX(a*10 + b, service->sysv_start_priority);
}
- r = set_ensure_allocated(&runlevel_services[i],
- trivial_hash_func, trivial_compare_func);
+ r = set_ensure_allocated(&runlevel_services[i], NULL);
if (r < 0)
goto finish;
@@ -836,8 +835,7 @@ static int set_dependencies_from_rcnd(LookupPaths lp, Hashmap *all_services) {
} else if (de->d_name[0] == 'K' &&
(rcnd_table[i].type == RUNLEVEL_DOWN)) {
- r = set_ensure_allocated(&shutdown_services,
- trivial_hash_func, trivial_compare_func);
+ r = set_ensure_allocated(&shutdown_services, NULL);
if (r < 0)
goto finish;
@@ -905,7 +903,7 @@ int main(int argc, char *argv[]) {
return EXIT_FAILURE;
}
- all_services = hashmap_new(string_hash_func, string_compare_func);
+ all_services = hashmap_new(&string_hash_ops);
if (!all_services) {
log_oom();
return EXIT_FAILURE;