From 631b9deefbef76c5f69b165f33cb46690c938c95 Mon Sep 17 00:00:00 2001 From: Michal Schmidt <mschmidt@redhat.com> Date: Thu, 31 Jul 2014 18:04:20 +0200 Subject: [PATCH] hashmap, set: remove unused functions The following hashmap_* and set_* functions/macros have never had any users in systemd's history: *_iterate_backwards *_iterate_skip *_last *_FOREACH_BACKWARDS Remove this dead code. --- src/shared/hashmap.c | 64 ------------------------------------------------- src/shared/hashmap.h | 6 ----- src/shared/set.c | 12 ---------- src/shared/set.h | 6 ----- src/test/test-hashmap.c | 55 ------------------------------------------ 5 files changed, 143 deletions(-) diff --git a/src/shared/hashmap.c b/src/shared/hashmap.c index 715484ce7c..1eadeced5c 100644 --- a/src/shared/hashmap.c +++ b/src/shared/hashmap.c @@ -753,59 +753,6 @@ at_end: return NULL; } -void *hashmap_iterate_backwards(Hashmap *h, Iterator *i, const void **key) { - struct hashmap_entry *e; - - assert(i); - - if (!h) - goto at_beginning; - - if (*i == ITERATOR_FIRST) - goto at_beginning; - - if (*i == ITERATOR_LAST && !h->iterate_list_tail) - goto at_beginning; - - e = *i == ITERATOR_LAST ? h->iterate_list_tail : (struct hashmap_entry*) *i; - - if (e->iterate_previous) - *i = (Iterator) e->iterate_previous; - else - *i = ITERATOR_FIRST; - - if (key) - *key = e->key; - - return e->value; - -at_beginning: - *i = ITERATOR_FIRST; - - if (key) - *key = NULL; - - return NULL; -} - -void *hashmap_iterate_skip(Hashmap *h, const void *key, Iterator *i) { - unsigned hash; - struct hashmap_entry *e; - - if (!h) - return NULL; - - hash = bucket_hash(h, key); - - e = hash_scan(h, hash, key); - if (!e) - return NULL; - - *i = (Iterator) e; - - return e->value; -} - void* hashmap_first(Hashmap *h) { if (!h) @@ -828,17 +775,6 @@ void* hashmap_first_key(Hashmap *h) { return (void*) h->iterate_list_head->key; } -void* hashmap_last(Hashmap *h) { - - if (!h) - return NULL; - - if (!h->iterate_list_tail) - return NULL; - - return h->iterate_list_tail->value; -} - void* hashmap_steal_first(Hashmap *h) { void *data; diff --git a/src/shared/hashmap.h b/src/shared/hashmap.h index 7385ebc5fa..e25840f47f 100644 --- a/src/shared/hashmap.h +++ b/src/shared/hashmap.h @@ -109,8 +109,6 @@ bool hashmap_isempty(Hashmap *h) _pure_; unsigned hashmap_buckets(Hashmap *h) _pure_; void *hashmap_iterate(Hashmap *h, Iterator *i, const void **key); -void *hashmap_iterate_backwards(Hashmap *h, Iterator *i, const void **key); -void *hashmap_iterate_skip(Hashmap *h, const void *key, Iterator *i); void hashmap_clear(Hashmap *h); void hashmap_clear_free(Hashmap *h); @@ -120,7 +118,6 @@ void *hashmap_steal_first(Hashmap *h); void *hashmap_steal_first_key(Hashmap *h); void *hashmap_first(Hashmap *h) _pure_; void *hashmap_first_key(Hashmap *h) _pure_; -void *hashmap_last(Hashmap *h) _pure_; void *hashmap_next(Hashmap *h, const void *key); @@ -132,9 +129,6 @@ char **hashmap_get_strv(Hashmap *h); #define HASHMAP_FOREACH_KEY(e, k, h, i) \ for ((i) = ITERATOR_FIRST, (e) = hashmap_iterate((h), &(i), (const void**) &(k)); (e); (e) = hashmap_iterate((h), &(i), (const void**) &(k))) -#define HASHMAP_FOREACH_BACKWARDS(e, h, i) \ - for ((i) = ITERATOR_LAST, (e) = hashmap_iterate_backwards((h), &(i), NULL); (e); (e) = hashmap_iterate_backwards((h), &(i), NULL)) - DEFINE_TRIVIAL_CLEANUP_FUNC(Hashmap*, hashmap_free); DEFINE_TRIVIAL_CLEANUP_FUNC(Hashmap*, hashmap_free_free); DEFINE_TRIVIAL_CLEANUP_FUNC(Hashmap*, hashmap_free_free_free); diff --git a/src/shared/set.c b/src/shared/set.c index d4ffe056d5..ed16067bdc 100644 --- a/src/shared/set.c +++ b/src/shared/set.c @@ -125,14 +125,6 @@ void *set_iterate(Set *s, Iterator *i) { return hashmap_iterate(MAKE_HASHMAP(s), i, NULL); } -void *set_iterate_backwards(Set *s, Iterator *i) { - return hashmap_iterate_backwards(MAKE_HASHMAP(s), i, NULL); -} - -void *set_iterate_skip(Set *s, void *value, Iterator *i) { - return hashmap_iterate_skip(MAKE_HASHMAP(s), value, i); -} - void *set_steal_first(Set *s) { return hashmap_steal_first(MAKE_HASHMAP(s)); } @@ -141,10 +133,6 @@ void* set_first(Set *s) { return hashmap_first(MAKE_HASHMAP(s)); } -void* set_last(Set *s) { - return hashmap_last(MAKE_HASHMAP(s)); -} - int set_merge(Set *s, Set *other) { return hashmap_merge(MAKE_HASHMAP(s), MAKE_HASHMAP(other)); } diff --git a/src/shared/set.h b/src/shared/set.h index e650b7e3fe..840ee0a7e4 100644 --- a/src/shared/set.h +++ b/src/shared/set.h @@ -57,24 +57,18 @@ unsigned set_size(Set *s); bool set_isempty(Set *s); void *set_iterate(Set *s, Iterator *i); -void *set_iterate_backwards(Set *s, Iterator *i); -void *set_iterate_skip(Set *s, void *value, Iterator *i); void set_clear(Set *s); void set_clear_free(Set *s); void *set_steal_first(Set *s); void* set_first(Set *s); -void* set_last(Set *s); char **set_get_strv(Set *s); #define SET_FOREACH(e, s, i) \ for ((i) = ITERATOR_FIRST, (e) = set_iterate((s), &(i)); (e); (e) = set_iterate((s), &(i))) -#define SET_FOREACH_BACKWARDS(e, s, i) \ - for ((i) = ITERATOR_LAST, (e) = set_iterate_backwards((s), &(i)); (e); (e) = set_iterate_backwards((s), &(i))) - DEFINE_TRIVIAL_CLEANUP_FUNC(Set*, set_free); DEFINE_TRIVIAL_CLEANUP_FUNC(Set*, set_free_free); #define _cleanup_set_free_ _cleanup_(set_freep) diff --git a/src/test/test-hashmap.c b/src/test/test-hashmap.c index 95a7f8379d..d9863f8dab 100644 --- a/src/test/test-hashmap.c +++ b/src/test/test-hashmap.c @@ -343,44 +343,6 @@ static void test_hashmap_foreach(void) { hashmap_free_free(m); } -static void test_hashmap_foreach_backwards(void) { - Hashmap *m; - Iterator i; - char *val1, *val2, *val3, *val4, *s; - bool value_found[] = { false, false, false, false }; - - val1 = strdup("my val1"); - assert_se(val1); - val2 = strdup("my val2"); - assert_se(val2); - val3 = strdup("my val3"); - assert_se(val3); - val4 = strdup("my val4"); - assert_se(val4); - - m = hashmap_new(&string_hash_ops); - hashmap_put(m, "Key 1", val1); - hashmap_put(m, "Key 2", val2); - hashmap_put(m, "Key 3", val3); - hashmap_put(m, "Key 4", val4); - - HASHMAP_FOREACH_BACKWARDS(s, m, i) { - if (!value_found[0] && streq(s, val1)) - value_found[0] = true; - else if (!value_found[1] && streq(s, val2)) - value_found[1] = true; - else if (!value_found[2] && streq(s, val3)) - value_found[2] = true; - else if (!value_found[3] && streq(s, val4)) - value_found[3] = true; - } - - assert_se(m); - assert_se(value_found[0] && value_found[1] && value_found[2] && value_found[3]); - - hashmap_free_free(m); -} - static void test_hashmap_merge(void) { Hashmap *m; Hashmap *n; @@ -532,21 +494,6 @@ static void test_hashmap_first_key(void) { assert_se(streq(hashmap_first_key(m), "key 2")); } -static void test_hashmap_last(void) { - _cleanup_hashmap_free_ Hashmap *m = NULL; - - m = hashmap_new(&string_hash_ops); - assert_se(m); - - assert_se(!hashmap_last(m)); - assert_se(hashmap_put(m, "key 1", (void *) (const char *) "val 1") == 1); - assert_se(streq(hashmap_last(m), "val 1")); - assert_se(hashmap_put(m, "key 2", (void *) (const char *) "bar") == 1); - assert_se(streq(hashmap_last(m), "bar")); - assert_se(hashmap_remove(m, "key 2")); - assert_se(streq(hashmap_last(m), "val 1")); -} - static void test_hashmap_steal_first_key(void) { _cleanup_hashmap_free_ Hashmap *m = NULL; @@ -604,7 +551,6 @@ int main(int argc, const char *argv[]) { test_hashmap_remove_and_put(); test_hashmap_ensure_allocated(); test_hashmap_foreach(); - test_hashmap_foreach_backwards(); test_hashmap_foreach_key(); test_hashmap_contains(); test_hashmap_merge(); @@ -613,7 +559,6 @@ int main(int argc, const char *argv[]) { test_hashmap_size(); test_hashmap_many(); test_hashmap_first_key(); - test_hashmap_last(); test_hashmap_steal_first_key(); test_hashmap_clear_free_free(); test_uint64_compare_func();