From 901402c99018422c994bdb297e3ba404969c88ea Mon Sep 17 00:00:00 2001 From: Charles Date: Mon, 30 Mar 2020 22:26:36 +0200 Subject: Added documentation for ht and lst --- src/ht/ft_htset.c | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) (limited to 'src/ht/ft_htset.c') diff --git a/src/ht/ft_htset.c b/src/ht/ft_htset.c index 0755889..9738c14 100644 --- a/src/ht/ft_htset.c +++ b/src/ht/ft_htset.c @@ -13,39 +13,43 @@ #include "libft.h" #include "libft_ht.h" -/* -** Create/Update a entry in an hash table. -** If `key` already exist in `ht`, updates only the list element content. -** else create a new list node in addition the list content. -** Return a pointer to the created entry, NULL if an allocation failed. +/** +** \brief Create/Update a entry in hash table. +** \note If `key` already exist in `ht`, only updates the list node content. +** Else create a new list node in addition the list content. +** \param ht Hash table where the entry is modified +** \param key Key of the new entry +** \param value Value of the new entry +** \param del Destroy function in case the entry is modified. +** \return Pointer to the created entry, NULL if an allocation failed. */ -t_ftht_content *ft_htset(t_ftht *ht, char *key, void *value, - void (*del)(t_ftht_content*)) +t_ftht_entry *ft_htset(t_ftht *ht, char *key, void *value, + void (*del)(t_ftht_entry*)) { t_ftht_digest digest; - t_ftht_content *content; - t_ftht_entry entry; + t_ftht_entry *content; + t_ftht_bucket bucket; t_ftlst *tmp; if (ht == NULL || key == NULL) return (NULL); - if ((content = ft_htcontent_new(key, value)) == NULL) + if ((content = ft_htentry_new(key, value)) == NULL) return (NULL); digest = ft_hthash(ht, key); - tmp = ft_lstlfind(ht->entries[digest], ft_inter_htkey_cmp, key); + tmp = ft_lstlfind(ht->buckets[digest], ft_inter_htkey_cmp, key); if (tmp != NULL) { if (del != NULL) - del(tmp->content); - tmp->content = content; - return ((t_ftht_content*)tmp->content); + del(tmp->data); + tmp->data = content; + return ((t_ftht_entry*)tmp->data); } - if ((entry = ft_lstnew(content)) == NULL) + if ((bucket = ft_lstnew(content)) == NULL) { del(content); return (NULL); } - ft_lstadd_front(ht->entries + digest, entry); + ft_lstpush_front(ht->buckets + digest, bucket); return (content); } -- cgit