]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
hashmap: drop hashmap_free_with_destructor() and friends
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 12 Apr 2025 19:21:46 +0000 (04:21 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 18 Apr 2025 00:16:44 +0000 (09:16 +0900)
src/basic/hashmap.h
src/basic/ordered-set.h
src/basic/set.h
src/test/test-hashmap-plain.c
src/test/test-set.c

index eb810e1e072f125de5a6575517aafcd1b3ac4851..8ced7e6a99018cd4349f8254c4e5845ecf292d97 100644 (file)
@@ -331,27 +331,6 @@ static inline void *ordered_hashmap_first_key(OrderedHashmap *h) {
         return _hashmap_first_key(HASHMAP_BASE(h), false);
 }
 
-#define hashmap_clear_with_destructor(h, f)                     \
-        ({                                                      \
-                Hashmap *_h = (h);                              \
-                void *_item;                                    \
-                while ((_item = hashmap_steal_first(_h)))       \
-                        f(_item);                               \
-                _h;                                             \
-        })
-#define hashmap_free_with_destructor(h, f)                      \
-        hashmap_free(hashmap_clear_with_destructor(h, f))
-#define ordered_hashmap_clear_with_destructor(h, f)                     \
-        ({                                                              \
-                OrderedHashmap *_h = (h);                               \
-                void *_item;                                            \
-                while ((_item = ordered_hashmap_steal_first(_h)))       \
-                        f(_item);                                       \
-                _h;                                                     \
-        })
-#define ordered_hashmap_free_with_destructor(h, f)                      \
-        ordered_hashmap_free(ordered_hashmap_clear_with_destructor(h, f))
-
 /* no hashmap_next */
 void* ordered_hashmap_next(OrderedHashmap *h, const void *key);
 
index 5f2b45309f91f651ea808f0e3ed4acc221f09952..b7113ad918caa489c2818ed604aef5a9f400bc91 100644 (file)
@@ -83,17 +83,6 @@ void ordered_set_print(FILE *f, const char *field, OrderedSet *s);
 #define ORDERED_SET_FOREACH(e, s) \
         _ORDERED_SET_FOREACH(e, s, UNIQ_T(i, UNIQ))
 
-#define ordered_set_clear_with_destructor(s, f)                 \
-        ({                                                      \
-                OrderedSet *_s = (s);                           \
-                void *_item;                                    \
-                while ((_item = ordered_set_steal_first(_s)))   \
-                        f(_item);                               \
-                _s;                                             \
-        })
-#define ordered_set_free_with_destructor(s, f)                  \
-        ordered_set_free(ordered_set_clear_with_destructor(s, f))
-
 DEFINE_TRIVIAL_CLEANUP_FUNC(OrderedSet*, ordered_set_free);
 
 #define _cleanup_ordered_set_free_ _cleanup_(ordered_set_freep)
index 6e6b38668798f0bcc6cbbc2182af2ee7368ebc70..c7b84e0a54b9dfa2ac4ba91b447cf5cb6cf3198f 100644 (file)
@@ -78,17 +78,6 @@ static inline void *set_steal_first(Set *s) {
         return _hashmap_first_key_and_value(HASHMAP_BASE(s), true, NULL);
 }
 
-#define set_clear_with_destructor(s, f)                 \
-        ({                                              \
-                Set *_s = (s);                          \
-                void *_item;                            \
-                while ((_item = set_steal_first(_s)))   \
-                        f(_item);                       \
-                _s;                                     \
-        })
-#define set_free_with_destructor(s, f)                  \
-        set_free(set_clear_with_destructor(s, f))
-
 /* no set_steal_first_key */
 /* no set_first_key */
 
index 3c75be30e57faa7474e9f192aa3ef9ef32089f97..fd70978037d78aff88e8a62292de6b85df5078cc 100644 (file)
@@ -764,29 +764,6 @@ TEST(hashmap_free) {
         }
 }
 
-typedef struct Item {
-        int seen;
-} Item;
-static void item_seen(Item *item) {
-        item->seen++;
-}
-
-TEST(hashmap_free_with_destructor) {
-        Hashmap *m;
-        struct Item items[4] = {};
-        unsigned i;
-
-        assert_se(m = hashmap_new(NULL));
-        for (i = 0; i < ELEMENTSOF(items) - 1; i++)
-                assert_se(hashmap_put(m, INT_TO_PTR(i), items + i) == 1);
-
-        m = hashmap_free_with_destructor(m, item_seen);
-        assert_se(items[0].seen == 1);
-        assert_se(items[1].seen == 1);
-        assert_se(items[2].seen == 1);
-        assert_se(items[3].seen == 0);
-}
-
 TEST(hashmap_first) {
         _cleanup_hashmap_free_ Hashmap *m = NULL;
 
index 8411e478eb313dabaab893abc9ddbd8214babbbd..f2e2e946292d4023a8be3d99f8075d0c29d65cdf 100644 (file)
@@ -32,21 +32,6 @@ static void item_seen(Item *item) {
         item->seen++;
 }
 
-TEST(set_free_with_destructor) {
-        Set *m;
-        struct Item items[4] = {};
-
-        assert_se(m = set_new(NULL));
-        FOREACH_ARRAY(item, items, ELEMENTSOF(items) - 1)
-                assert_se(set_put(m, item) == 1);
-
-        m = set_free_with_destructor(m, item_seen);
-        assert_se(items[0].seen == 1);
-        assert_se(items[1].seen == 1);
-        assert_se(items[2].seen == 1);
-        assert_se(items[3].seen == 0);
-}
-
 DEFINE_PRIVATE_HASH_OPS_WITH_VALUE_DESTRUCTOR(item_hash_ops, void, trivial_hash_func, trivial_compare_func, Item, item_seen);
 
 TEST(set_free_with_hash_ops) {