diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-02-19 02:51:44 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-02-19 02:51:44 +0100 |
| commit | 3c3f1115f6e9a9b914e2dcbd796501ca7ce85342 (patch) | |
| tree | 29803aac5bd1fe039b9a8179e8c2a4f07e68ec82 /src/ht/ft_htset.c | |
| parent | 0362f55a094b5ec813d940b66f397abfa13fbe49 (diff) | |
| download | libft-3c3f1115f6e9a9b914e2dcbd796501ca7ce85342.tar.gz libft-3c3f1115f6e9a9b914e2dcbd796501ca7ce85342.tar.bz2 libft-3c3f1115f6e9a9b914e2dcbd796501ca7ce85342.zip | |
Tested ht*
Diffstat (limited to 'src/ht/ft_htset.c')
| -rw-r--r-- | src/ht/ft_htset.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/ht/ft_htset.c b/src/ht/ft_htset.c index 4157134..c7068d5 100644 --- a/src/ht/ft_htset.c +++ b/src/ht/ft_htset.c @@ -6,14 +6,15 @@ /* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/01/30 08:41:52 by cacharle #+# #+# */ -/* Updated: 2020/02/17 05:02:15 by cacharle ### ########.fr */ +/* Updated: 2020/02/19 02:44:10 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ #include "libft.h" #include "libft_ht.h" -t_ftht_content *ft_htset(t_ftht *ht, char *key, void *value, void (*del)(void*)) +t_ftht_content *ft_htset(t_ftht *ht, char *key, void *value, + void (*del)(t_ftht_content*)) { t_ftht_digest digest; t_ftht_content *content; @@ -22,17 +23,18 @@ t_ftht_content *ft_htset(t_ftht *ht, char *key, void *value, void (*del)(void*)) if (ht == NULL || key == NULL) return (NULL); + if ((content = ft_htcontent_new(key, value)) == NULL) + return (NULL); digest = ft_hthash(ht, key); - tmp = ft_lstlfind(ht->entries[digest], ft_inter_htkey_cmp, entry); + tmp = ft_lstlfind(ht->entries[digest], ft_inter_htkey_cmp, key); if (tmp != NULL) { if (del != NULL) - del(((t_ftht_content*)tmp->content)->value); - ((t_ftht_content*)tmp->content)->value = value; + (*del)(tmp->content); + tmp->content = content; return ((t_ftht_content*)tmp->content); } - if ((content = ft_htcontent_new(key, value)) == NULL) - return (NULL); + if ((entry = ft_lstnew(content)) == NULL) { free(content); |
