summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2020-09-01 13:18:56 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2020-09-01 13:32:02 +0200
commite4126adf453d170afae319f7d3d7a87b4d2f5159 (patch)
tree1f7f2b1535e0728e9c5a34bfb5c6337e9315bb6e
parent1f25c71d9d0b5fe6cf383c347dcebc2443a99fe1 (diff)
downloadsystemd-e4126adf453d170afae319f7d3d7a87b4d2f5159.tar.gz
basic/hashmap,set: inline trivial set_iterate() wrapper
The compiler would do this to, esp. with LTO, but we can short-circuit the whole process and make everything a bit simpler by avoiding the separate definition. (It would be nice to do the same for _set_new(), _set_ensure_allocated() and other similar functions which are one-line trivial wrappers too. Unfortunately that would require enum HashmapType to be made public, which we don't want to do.)
-rw-r--r--src/basic/hashmap.c4
-rw-r--r--src/basic/set.h4
2 files changed, 3 insertions, 5 deletions
diff --git a/src/basic/hashmap.c b/src/basic/hashmap.c
index e0319031d6..2605cad8d9 100644
--- a/src/basic/hashmap.c
+++ b/src/basic/hashmap.c
@@ -730,10 +730,6 @@ bool _hashmap_iterate(HashmapBase *h, Iterator *i, void **value, const void **ke
return true;
}
-bool set_iterate(const Set *s, Iterator *i, void **value) {
- return _hashmap_iterate(HASHMAP_BASE((Set*) s), i, value, NULL);
-}
-
#define HASHMAP_FOREACH_IDX(idx, h, i) \
for ((i) = ITERATOR_FIRST, (idx) = hashmap_iterate_entry((h), &(i)); \
(idx != IDX_NIL); \
diff --git a/src/basic/set.h b/src/basic/set.h
index e4fc1e3c4a..b579e1b6dc 100644
--- a/src/basic/set.h
+++ b/src/basic/set.h
@@ -77,7 +77,9 @@ static inline unsigned set_buckets(const Set *s) {
return _hashmap_buckets(HASHMAP_BASE((Set *) s));
}
-bool set_iterate(const Set *s, Iterator *i, void **value);
+static inline bool set_iterate(const Set *s, Iterator *i, void **value) {
+ return _hashmap_iterate(HASHMAP_BASE((Set*) s), i, value, NULL);
+}
static inline void set_clear(Set *s) {
_hashmap_clear(HASHMAP_BASE(s), NULL, NULL);