diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-09-01 12:42:35 +0200 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-09-01 12:42:35 +0200 |
commit | 1f25c71d9d0b5fe6cf383c347dcebc2443a99fe1 (patch) | |
tree | 6aa730656506b2eaff58ff7ae60c14fcbf74b579 /src/basic/ordered-set.h | |
parent | b7847e05f53cf3f071d92e9c3b46652d8396c6ed (diff) | |
download | systemd-1f25c71d9d0b5fe6cf383c347dcebc2443a99fe1.tar.gz |
basic: pass allocation info for ordered_set_new() and introduce ordered_set_ensure_put()
Diffstat (limited to 'src/basic/ordered-set.h')
-rw-r--r-- | src/basic/ordered-set.h | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/src/basic/ordered-set.h b/src/basic/ordered-set.h index a42a57eb49..2c241a808b 100644 --- a/src/basic/ordered-set.h +++ b/src/basic/ordered-set.h @@ -7,20 +7,16 @@ typedef struct OrderedSet OrderedSet; -static inline OrderedSet* ordered_set_new(const struct hash_ops *ops) { - return (OrderedSet*) ordered_hashmap_new(ops); +static inline OrderedSet* _ordered_set_new(const struct hash_ops *ops HASHMAP_DEBUG_PARAMS) { + return (OrderedSet*) _ordered_hashmap_new(ops HASHMAP_DEBUG_PASS_ARGS); } +#define ordered_set_new(ops) _ordered_set_new(ops HASHMAP_DEBUG_SRC_ARGS) -static inline int ordered_set_ensure_allocated(OrderedSet **s, const struct hash_ops *ops) { - if (*s) - return 0; +int _ordered_set_ensure_allocated(OrderedSet **s, const struct hash_ops *ops HASHMAP_DEBUG_PARAMS); +#define ordered_set_ensure_allocated(s, ops) _ordered_set_ensure_allocated(s, ops HASHMAP_DEBUG_SRC_ARGS) - *s = ordered_set_new(ops); - if (!*s) - return -ENOMEM; - - return 0; -} +int _ordered_set_ensure_put(OrderedSet **s, const struct hash_ops *ops, void *p HASHMAP_DEBUG_PARAMS); +#define ordered_set_ensure_put(s, hash_ops, key) _ordered_set_ensure_put(s, hash_ops, key HASHMAP_DEBUG_SRC_ARGS) static inline OrderedSet* ordered_set_free(OrderedSet *s) { return (OrderedSet*) ordered_hashmap_free((OrderedHashmap*) s); |