From: Lennart Poettering Date: Tue, 24 Nov 2015 20:54:22 +0000 (+0100) Subject: util-lib: add ordered_set_ensure_allocated() X-Git-Tag: v231~907^2~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0264d0726fac78f7d689ded632987ff9edfc03d2;p=platform%2Fupstream%2Fsystemd.git util-lib: add ordered_set_ensure_allocated() ordered_set_ensure_allocated() does for an OrderedSet, what set_ensure_allicated() does for a Set. --- diff --git a/src/basic/ordered-set.h b/src/basic/ordered-set.h index 6c617ab..da10e90 100644 --- a/src/basic/ordered-set.h +++ b/src/basic/ordered-set.h @@ -29,6 +29,17 @@ static inline OrderedSet* ordered_set_new(const struct hash_ops *ops) { return (OrderedSet*) ordered_hashmap_new(ops); } +static inline int ordered_set_ensure_allocated(OrderedSet **s, const struct hash_ops *ops) { + if (*s) + return 0; + + *s = ordered_set_new(ops); + if (!*s) + return -ENOMEM; + + return 0; +} + static inline OrderedSet* ordered_set_free(OrderedSet *s) { ordered_hashmap_free((OrderedHashmap*) s); return NULL; diff --git a/src/basic/set.h b/src/basic/set.h index 4554ef2..5fd7de0 100644 --- a/src/basic/set.h +++ b/src/basic/set.h @@ -27,7 +27,6 @@ Set *internal_set_new(const struct hash_ops *hash_ops HASHMAP_DEBUG_PARAMS); #define set_new(ops) internal_set_new(ops HASHMAP_DEBUG_SRC_ARGS) - static inline Set *set_free(Set *s) { internal_hashmap_free(HASHMAP_BASE(s)); return NULL;