From a931d6df9fd873607442a70351fbb7e0f32590d0 Mon Sep 17 00:00:00 2001 From: Dominik Kaiser Date: Wed, 24 Apr 2024 11:08:34 +0200 Subject: Norminette formatting --- cmd_optimization.c | 132 +++++++++++++++++++++++++++-------------------------- 1 file changed, 67 insertions(+), 65 deletions(-) (limited to 'cmd_optimization.c') diff --git a/cmd_optimization.c b/cmd_optimization.c index 9fcf876..41d1c08 100644 --- a/cmd_optimization.c +++ b/cmd_optimization.c @@ -6,7 +6,7 @@ /* By: dkaiser content); - else - return NO_CMD; + if (cmd) + return (*(enum e_pscmd *)cmd->content); + else + return (NO_CMD); } -static void optimize_redundant(t_psdata *data, enum e_pscmd cmd1, enum e_pscmd cmd2) +static void optimize_redundant(t_psdata *data, enum e_pscmd cmd1, + enum e_pscmd cmd2) { - t_list *cur; - t_list *last; - int optimizations; + t_list *cur; + t_list *last; + int optimizations; - cur = data->cmds; - last = cur; - optimizations = 0; - - if (!cur) - return ; - while (cur && cur->next) - { - if ((get_cmd(cur) == cmd1 && get_cmd(cur->next) == cmd2) || (get_cmd(cur) == cmd2 && get_cmd(cur->next) == cmd1)) - { - last->next = cur->next->next; - ft_lstdelone(cur->next, free); - ft_lstdelone(cur, free); - optimizations++; - } - last = last->next; - if (last) - cur = last->next; - else - cur = NULL; - } - if (optimizations) - optimize_redundant(data, cmd1, cmd2); + cur = data->cmds; + last = cur; + optimizations = 0; + if (!cur) + return ; + while (cur && cur->next) + { + if ((get_cmd(cur) == cmd1 && get_cmd(cur->next) == cmd2) + || (get_cmd(cur) == cmd2 && get_cmd(cur->next) == cmd1)) + { + last->next = cur->next->next; + ft_lstdelone(cur->next, free); + ft_lstdelone(cur, free); + optimizations++; + } + last = last->next; + if (last) + cur = last->next; + else + cur = NULL; + } + if (optimizations) + optimize_redundant(data, cmd1, cmd2); } -static void optimize_two_stack_ops(t_psdata *data, enum e_pscmd cmd1, enum e_pscmd cmd2, enum e_pscmd new_cmd) +static void optimize_two_stack_ops(t_psdata *data, enum e_pscmd cmd1, + enum e_pscmd cmd2, enum e_pscmd new_cmd) { - t_list *cur; - t_list *last; - int optimizations; - - cur = data->cmds; - last = cur; - optimizations = 0; + t_list *cur; + t_list *last; + int optimizations; - if (!cur) - return ; - while (cur && cur->next) - { - if ((get_cmd(cur) == cmd1 && get_cmd(cur->next) == cmd2) || (get_cmd(cur) == cmd2 && get_cmd(cur->next) == cmd1)) - { - last->next = cur->next; - *(enum e_pscmd*)cur->next->content = new_cmd; - ft_lstdelone(cur, free); - optimizations++; - } - last = last->next; - if (last) - cur = last->next; - else - cur = NULL; - } - if (optimizations) - optimize_two_stack_ops(data, cmd1, cmd2, new_cmd); + cur = data->cmds; + last = cur; + optimizations = 0; + if (!cur) + return ; + while (cur && cur->next) + { + if ((get_cmd(cur) == cmd1 && get_cmd(cur->next) == cmd2) + || (get_cmd(cur) == cmd2 && get_cmd(cur->next) == cmd1)) + { + last->next = cur->next; + *(enum e_pscmd *)cur->next->content = new_cmd; + ft_lstdelone(cur, free); + optimizations++; + } + last = last->next; + if (last) + cur = last->next; + else + cur = NULL; + } + if (optimizations) + optimize_two_stack_ops(data, cmd1, cmd2, new_cmd); } -void optimize_commands(t_psdata *data) +void optimize_commands(t_psdata *data) { - optimize_redundant(data, PA, PB); - optimize_redundant(data, RB, RRB); - optimize_redundant(data, RA, RRA); - optimize_two_stack_ops(data, RA, RB, RR); + optimize_redundant(data, PA, PB); + optimize_redundant(data, RB, RRB); + optimize_redundant(data, RA, RRA); + optimize_two_stack_ops(data, RA, RB, RR); } -- cgit v1.2.3