]> www.ljiriste.work Git - Libft.git/commitdiff
Remove ft_stack_pop_forget
authorLukáš Jiřiště <redacted>
Mon, 6 Apr 2026 10:59:35 +0000 (12:59 +0200)
committerLukáš Jiřiště <redacted>
Mon, 6 Apr 2026 10:59:35 +0000 (12:59 +0200)
I do not understand, why the standard pop should call free on the
element as that would make it quite useless. Hence I removed the element
free from pop, which became the same as pop_forget.

Makefile
ft_parse/actions.c
ft_struct/ft_llist.c
ft_struct/ft_rbtree_traversal.c
ft_struct/ft_stack_pop.c
ft_struct/ft_stack_pop_forget.c [deleted file]
inc/ft_struct.h

index 1f8b8a25de265e825912d18f73f12d1f21dbe3f2..ae3499395e65ced151ff2dcc84ef9463df17e2ae 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -18,7 +18,6 @@ SRCDIR := ft_gen ft_math ft_str ft_mem ft_io ft_check ft_conv         \
 SRCstruct:=    ft_stack_free.c                                                                                 \
                        ft_stack_init.c                                                                                 \
                        ft_stack_pop.c                                                                                  \
-                       ft_stack_pop_forget.c                                                                   \
                        ft_stack_push.c                                                                                 \
                        ft_stack_top.c                                                                                  \
                        ft_tree_init.c                                                                                  \
index 1138708f49b93c882a8951e7e234016c1b09e10f..cd5001fb826cb5b25fec3d1a2b0bbafa4626cab8 100644 (file)
@@ -59,7 +59,7 @@ static int    hang_top_from_tree(t_stack *stack, t_parse_tree_node *tree,
                node->token = ft_token_dup(&g_empty_token);
        }
        else
-               node = ((t_parser_stack_element *)ft_stack_pop(stack, NULL))->node;
+               node = ((t_parser_stack_element *)ft_stack_pop(stack))->node;
        if (ft_strcmp(node->token.type, constituent_token->type)
                || ft_vec_insert(&tree->children, node, 0) != success)
        {
index b7e33b20411dc9cc52628d64cf9e5f46d8e01bbc..54ff25c23f49eef29ef62e39783ab5fe532478b9 100644 (file)
@@ -8,6 +8,7 @@ t_ft_stat       ft_llist_init(t_llist *list, size_t     el_size)
                return (invalid_input);
        list->el_size = el_size;
        list->head = NULL;
+       list->tail = NULL;
        return (success);
 }
 
index 8e022d6d8ffb566247b81687075c52ebe9fcfb7d..7c5ea9ac61b6e539f7d34aaf56f02c677f590a33 100644 (file)
@@ -125,7 +125,7 @@ void        *ft_rbtree_traverse(t_rbtree_traversal *traversal)
 {
        t_rbtree_node   **node;
 
-       node = ft_stack_pop_forget(&traversal->stack);
+       node = ft_stack_pop(&traversal->stack);
        if (node && *node)
                return (&(*node)->data);
        ft_rbtree_traversal_free(traversal);
index 0f2ce9fff72de9a6c32beca592df7691d229b02a..a9db28c506b837831d02b9c2fdc10ea67ea47578 100644 (file)
 #include "ft_struct.h"
 #include "ft_arr.h"
 
-void   *ft_stack_pop(t_stack *stack, void (*free_el)(void *))
+void   *ft_stack_pop(t_stack *stack)
 {
        void    *res;
 
        res = ft_stack_top(stack);
-       ft_llist_delete_head(&stack->list, free_el);
+       ft_llist_delete_head(&stack->list, NULL);
        return (res);
 }
diff --git a/ft_struct/ft_stack_pop_forget.c b/ft_struct/ft_stack_pop_forget.c
deleted file mode 100644 (file)
index 3d51c67..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/* ************************************************************************** */
-/*                                                                            */
-/*                                                        :::      ::::::::   */
-/*   ft_stack_pop_forget.c                              :+:      :+:    :+:   */
-/*                                                    +:+ +:+         +:+     */
-/*   By: ljiriste <marvin@42.fr>                    +#+  +:+       +#+        */
-/*                                                +#+#+#+#+#+   +#+           */
-/*   Created: 2024/06/20 17:15:41 by ljiriste          #+#    #+#             */
-/*   Updated: 2024/06/20 17:47:35 by ljiriste         ###   ########.fr       */
-/*                                                                            */
-/* ************************************************************************** */
-
-#include "ft_struct.h"
-#include "ft_arr.h"
-
-void   *ft_stack_pop_forget(t_stack *stack)
-{
-       return (ft_stack_pop(stack, NULL));
-}
index 3d5dcb54ecd56eb3264cd4aba58f666f3945e9d9..1495cbf68d19a38fb20726ff1c7800972f33f1ef 100644 (file)
@@ -57,8 +57,7 @@ typedef struct s_stack
 t_ft_stat      ft_stack_init(t_stack *stack, size_t el_size);
 t_ft_stat      ft_stack_push(t_stack *stack, void *element);
 void           *ft_stack_top(t_stack *stack);
-void           *ft_stack_pop(t_stack *stack, t_free_fun free_el);
-void           *ft_stack_pop_forget(t_stack *stack);
+void           *ft_stack_pop(t_stack *stack);
 void           ft_stack_free(t_stack *stack, t_free_fun free_el);
 
 // t_vec reserves memory for 8 elements at first