/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* free_node.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: dkaiser 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); }