diff options
Diffstat (limited to 'src/free_node.c')
| -rw-r--r-- | src/free_node.c | 117 |
1 files changed, 35 insertions, 82 deletions
diff --git a/src/free_node.c b/src/free_node.c index 733fe1c..e62d6cb 100644 --- a/src/free_node.c +++ b/src/free_node.c @@ -6,7 +6,7 @@ /* By: chuhlig <chuhlig@student.42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/06/27 11:41:46 by dkaiser #+# #+# */ -/* Updated: 2025/01/22 16:00:36 by chuhlig ### ########.fr */ +/* Updated: 2025/01/25 11:39:01 by chuhlig ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,96 +16,49 @@ static void free_pipe_node(t_node *node); static void free_cmd_node(t_node *node); static void free_file(void *arg); -// void free_node(t_node *node) -// { -// if (node->type == PIPE_NODE) -// free_pipe_node(node); -// else if (node->type == CMD_NODE) -// free_cmd_node(node); -// else if (node->type == STRING_NODE) -// free(node->content.string); -// else -// panic(UNREACHABLE); -// free(node); -// } - -// static void free_pipe_node(t_node *node) -// { -// free_node(node->content.pipe.left); -// free_node(node->content.pipe.right); -// } - -// static void free_cmd_node(t_node *node) -// { -// int i; - -// i = 0; -// while (node->content.cmd.args != NULL && node->content.cmd.args[i] != NULL) -// { -// free(node->content.cmd.args[i]); -// i++; -// } -// free(node->content.cmd.args); -// if (node->content.cmd.redirs[0].type != 0 -// && node->content.cmd.redirs[0].specifier != NULL) -// free(node->content.cmd.redirs[0].specifier); -// if (node->content.cmd.redirs[1].type != 0 -// && node->content.cmd.redirs[0].specifier != NULL) -// free(node->content.cmd.redirs[1].specifier); -// if (node->content.cmd.create_files != NULL) -// ft_lstclear(&node->content.cmd.create_files, free_file); -// } - -// static void free_file(void *arg) -// { -// t_redirection *file; - -// file = (t_redirection *)arg; -// free(file->specifier); -// free(file); -// } - -void free_node(t_node *node) +void free_node(t_node *node) { - if (node->type == PIPE_NODE) - free_pipe_node(node); - else if (node->type == CMD_NODE) - free_cmd_node(node); - else if (node->type == STRING_NODE) - free(node->content.string); - free(node); + if (node->type == PIPE_NODE) + free_pipe_node(node); + else if (node->type == CMD_NODE) + free_cmd_node(node); + else if (node->type == STRING_NODE) + free(node->content.string); + free(node); } -static void free_pipe_node(t_node *node) +static void free_pipe_node(t_node *node) { - free_node(node->content.pipe.left); - free_node(node->content.pipe.right); + free_node(node->content.pipe.left); + free_node(node->content.pipe.right); } -static void free_cmd_node(t_node *node) +static void free_cmd_node(t_node *node) { - int i; + int i; - i = 0; - while (node->content.cmd.args != NULL && node->content.cmd.args[i] != NULL) - { - free(node->content.cmd.args[i]); - i++; - } - free(node->content.cmd.args); - if (node->content.cmd.redirs[0].type != 0 && node->content.cmd.redirs[0].specifier != NULL) - free(node->content.cmd.redirs[0].specifier); - if (node->content.cmd.redirs[1].type != 0 && node->content.cmd.redirs[1].specifier != NULL) - free(node->content.cmd.redirs[1].specifier); - if (node->content.cmd.create_files != NULL) - ft_lstclear(&node->content.cmd.create_files, free_file); + i = 0; + while (node->content.cmd.args != NULL && node->content.cmd.args[i] != NULL) + { + free(node->content.cmd.args[i]); + i++; + } + free(node->content.cmd.args); + if (node->content.cmd.redirs[0].type != 0 + && node->content.cmd.redirs[0].specifier != NULL) + free(node->content.cmd.redirs[0].specifier); + if (node->content.cmd.redirs[1].type != 0 + && node->content.cmd.redirs[1].specifier != NULL) + free(node->content.cmd.redirs[1].specifier); + if (node->content.cmd.create_files != NULL) + ft_lstclear(&node->content.cmd.create_files, free_file); } -static void free_file(void *arg) +static void free_file(void *arg) { - t_redirection *file; + t_redirection *file; - file = (t_redirection *)arg; - free(file->specifier); - free(file); -}
\ No newline at end of file + file = (t_redirection *)arg; + free(file->specifier); + free(file); +} |
