diff options
| author | Dominik Kaiser | 2024-03-11 13:42:54 +0100 |
|---|---|---|
| committer | Dominik Kaiser | 2024-03-11 13:42:54 +0100 |
| commit | ddb9eea40cac83c7d6ff173a3d94723805efe24d (patch) | |
| tree | 66a186af367a7254d26a90116e2d8dc8cfa2dfe8 | |
| parent | b23760c78e2d087d84311925f2c014aa7c4c1635 (diff) | |
| download | libft-ddb9eea40cac83c7d6ff173a3d94723805efe24d.tar.gz libft-ddb9eea40cac83c7d6ff173a3d94723805efe24d.zip | |
Refactor ft_lstmap to make it norme conform
| -rw-r--r-- | ft_lstmap_bonus.c | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/ft_lstmap_bonus.c b/ft_lstmap_bonus.c index 1e4b867..43120cd 100644 --- a/ft_lstmap_bonus.c +++ b/ft_lstmap_bonus.c @@ -6,7 +6,7 @@ /* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/03/10 16:45:21 by dkaiser #+# #+# */ -/* Updated: 2024/03/11 13:25:08 by dkaiser ### ########.fr */ +/* Updated: 2024/03/11 13:36:23 by dkaiser ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,31 +20,19 @@ t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *)) if (!lst || !f || !del) return (NULL); - content = f(lst->content); - cur_new = ft_lstnew(content); - if (!cur_new) - { - del(content); - return (NULL); - } - result = cur_new; - if (!lst->next) - return (result); - lst = lst->next; + result = NULL; while (lst) { content = f(lst->content); - cur_new->next = ft_lstnew(content); - if (!cur_new->next) + cur_new = ft_lstnew(content); + if (!cur_new) { del(content); ft_lstclear(&result, del); return (NULL); } - if (!lst->next) - return (result); lst = lst->next; - cur_new = cur_new->next; + ft_lstadd_back(&result, cur_new); } return (result); } |
