diff options
Diffstat (limited to 'cheesemap.h')
| -rw-r--r-- | cheesemap.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/cheesemap.h b/cheesemap.h index 0afdf5a..9d7139d 100644 --- a/cheesemap.h +++ b/cheesemap.h @@ -94,10 +94,11 @@ struct cheesemap { struct cheesemap_raw raw; }; -static inline struct cheesemap cm_new(uintptr_t entry_size, uint8_t* mem_usr, - cm_malloc_fn malloc, cm_free_fn free, - uint8_t* map_usr, cm_hash_fn hash, - cm_compare_fn compare) { +static inline void cm_new(struct cheesemap* map, uintptr_t entry_size, + uint8_t* mem_usr, cm_malloc_fn malloc, cm_free_fn free, + uint8_t* map_usr, cm_hash_fn hash, + cm_compare_fn compare) { + assert(map != NULL); assert(malloc != NULL && free != NULL); assert(hash != NULL && compare != NULL); @@ -107,7 +108,7 @@ static inline struct cheesemap cm_new(uintptr_t entry_size, uint8_t* mem_usr, hash, compare, // }; - return (struct cheesemap){entry_size, fns, cm_raw_new()}; + *map = (struct cheesemap){entry_size, fns, cm_raw_new()}; } static inline void cm_drop(struct cheesemap* map) { |
