diff options
author | David Herrmann <dh.herrmann@gmail.com> | 2015-04-10 11:15:12 +0200 |
---|---|---|
committer | Anthony G. Basile <blueness@gentoo.org> | 2015-04-12 18:16:35 -0400 |
commit | c9853d8cda5d28e27ea4ef61630ddab88d85f68f (patch) | |
tree | b8532299229b4dbc7e706cd22430df079c16f0fd /src/shared/hashmap.h | |
parent | 461300d949a1a50a665d69ba68c03160e65e6bf4 (diff) |
hashmap: return NULL from destructor
We _always_ return NULL from destructors to allow direct assignments to
the variable holding the object. Especially on hashmaps, which treat NULL
as empty hashmap, this is pretty neat.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Diffstat (limited to 'src/shared/hashmap.h')
-rw-r--r-- | src/shared/hashmap.h | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/shared/hashmap.h b/src/shared/hashmap.h index 894f67939e..a03ee5812a 100644 --- a/src/shared/hashmap.h +++ b/src/shared/hashmap.h @@ -144,25 +144,25 @@ OrderedHashmap *internal_ordered_hashmap_new(const struct hash_ops *hash_ops HA #define hashmap_new(ops) internal_hashmap_new(ops HASHMAP_DEBUG_SRC_ARGS) #define ordered_hashmap_new(ops) internal_ordered_hashmap_new(ops HASHMAP_DEBUG_SRC_ARGS) -void internal_hashmap_free(HashmapBase *h); -static inline void hashmap_free(Hashmap *h) { - internal_hashmap_free(HASHMAP_BASE(h)); +HashmapBase *internal_hashmap_free(HashmapBase *h); +static inline Hashmap *hashmap_free(Hashmap *h) { + return (void*)internal_hashmap_free(HASHMAP_BASE(h)); } -static inline void ordered_hashmap_free(OrderedHashmap *h) { - internal_hashmap_free(HASHMAP_BASE(h)); +static inline OrderedHashmap *ordered_hashmap_free(OrderedHashmap *h) { + return (void*)internal_hashmap_free(HASHMAP_BASE(h)); } -void internal_hashmap_free_free(HashmapBase *h); -static inline void hashmap_free_free(Hashmap *h) { - internal_hashmap_free_free(HASHMAP_BASE(h)); +HashmapBase *internal_hashmap_free_free(HashmapBase *h); +static inline Hashmap *hashmap_free_free(Hashmap *h) { + return (void*)internal_hashmap_free_free(HASHMAP_BASE(h)); } -static inline void ordered_hashmap_free_free(OrderedHashmap *h) { - internal_hashmap_free_free(HASHMAP_BASE(h)); +static inline OrderedHashmap *ordered_hashmap_free_free(OrderedHashmap *h) { + return (void*)internal_hashmap_free_free(HASHMAP_BASE(h)); } -void hashmap_free_free_free(Hashmap *h); -static inline void ordered_hashmap_free_free_free(OrderedHashmap *h) { - hashmap_free_free_free(PLAIN_HASHMAP(h)); +Hashmap *hashmap_free_free_free(Hashmap *h); +static inline OrderedHashmap *ordered_hashmap_free_free_free(OrderedHashmap *h) { + return (void*)hashmap_free_free_free(PLAIN_HASHMAP(h)); } HashmapBase *internal_hashmap_copy(HashmapBase *h); |