X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fshared%2Fhashmap.h;h=a03ee5812a677d470e1f3878fac14b27ee2d442f;hb=dc1202e58f8b0c29b062987dae374935139202c9;hp=72c4adc5aa6f118b3ac9e126ef1e3e9f28e9f33f;hpb=90df619ef505145a62b25bbe8d95ae595a6a9511;p=elogind.git diff --git a/src/shared/hashmap.h b/src/shared/hashmap.h index 72c4adc5a..a03ee5812 100644 --- a/src/shared/hashmap.h +++ b/src/shared/hashmap.h @@ -32,7 +32,7 @@ * will be treated as empty hashmap for all read operations. That way it is not * necessary to instantiate an object for each Hashmap use. * - * If ENABLE_HASHMAP_DEBUG is defined (by configuring with --enable-hashmap-debug), + * If ENABLE_DEBUG_HASHMAP is defined (by configuring with --enable-debug=hashmap), * the implemention will: * - store extra data for debugging and statistics (see tools/gdb-sd_dump_hashmaps.py) * - perform extra checks for invalid use of iterators @@ -57,7 +57,7 @@ typedef struct Set Set; /* Stores just keys */ typedef struct { unsigned idx; /* index of an entry to be iterated next */ const void *next_key; /* expected value of that entry's key pointer */ -#ifdef ENABLE_HASHMAP_DEBUG +#ifdef ENABLE_DEBUG_HASHMAP unsigned put_count; /* hashmap's put_count recorded at start of iteration */ unsigned rem_count; /* hashmap's rem_count in previous iteration */ unsigned prev_idx; /* idx in previous iteration */ @@ -129,7 +129,7 @@ extern const struct hash_ops devt_hash_ops = { (Hashmap*)(h), \ (void)0) -#ifdef ENABLE_HASHMAP_DEBUG +#ifdef ENABLE_DEBUG_HASHMAP # define HASHMAP_DEBUG_PARAMS , const char *func, const char *file, int line # define HASHMAP_DEBUG_SRC_ARGS , __func__, __FILE__, __LINE__ # define HASHMAP_DEBUG_PASS_ARGS , func, file, line @@ -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);