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.)
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); \
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);