From fbd1d450b0c2da394cbb02fd61ab75b2719bfb72 Mon Sep 17 00:00:00 2001 From: Charles Date: Thu, 24 Oct 2019 10:03:24 +0200 Subject: lstmap little fix --- ft_lstdelone_bonus.c | 2 +- ft_lstmap_bonus.c | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/ft_lstdelone_bonus.c b/ft_lstdelone_bonus.c index 745dd21..aaa314f 100644 --- a/ft_lstdelone_bonus.c +++ b/ft_lstdelone_bonus.c @@ -6,7 +6,7 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/09 09:03:02 by cacharle #+# #+# */ -/* Updated: 2019/10/20 10:55:20 by cacharle ### ########.fr */ +/* Updated: 2019/10/24 09:36:04 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/ft_lstmap_bonus.c b/ft_lstmap_bonus.c index 9ca7cad..81b9949 100644 --- a/ft_lstmap_bonus.c +++ b/ft_lstmap_bonus.c @@ -6,14 +6,14 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/09 09:03:57 by cacharle #+# #+# */ -/* Updated: 2019/10/21 11:43:10 by cacharle ### ########.fr */ +/* Updated: 2019/10/24 09:41:20 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ #include #include "libft.h" -t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *)) +t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *)) { t_list *mapped; t_list *tmp; @@ -21,14 +21,13 @@ t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *)) if (lst == NULL || f == NULL || del == NULL) return (NULL); mapped = NULL; - while (lst) + while (lst != NULL) { if ((tmp = ft_lstnew((*f)(lst->content))) == NULL) { - ft_lstclear(&tmp, del); + ft_lstclear(&mapped, del); return (NULL); } - tmp->next = lst->next; ft_lstadd_back(&mapped, tmp); lst = lst->next; } @@ -38,6 +37,10 @@ t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *)) /* ** Rest in peace, my beautiful recursion. ** +** t_list *tmp; +** +** if (lst == NULL) +** return (NULL); ** if ((tmp = ft_lstnew(lst->content)) == NULL) ** return (NULL); ** tmp->content = (*f)(tmp->content); -- cgit