From 9ec4dd2e78c61a2b2be8d645d3e523f954d83e9e Mon Sep 17 00:00:00 2001 From: Dominik Kaiser Date: Fri, 26 Apr 2024 18:36:07 +0200 Subject: Sort three and some norme cleanup --- cmd_optimization.c | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) (limited to 'cmd_optimization.c') diff --git a/cmd_optimization.c b/cmd_optimization.c index ac023c5..b310f34 100644 --- a/cmd_optimization.c +++ b/cmd_optimization.c @@ -6,7 +6,7 @@ /* By: dkaiser next; + if (*last) + *cur = (*last)->next; + else + *cur = NULL; +} + static void optimize_redundant(t_psdata *data, enum e_pscmd cmd1, enum e_pscmd cmd2) { @@ -30,7 +39,10 @@ static void optimize_redundant(t_psdata *data, enum e_pscmd cmd1, int optimizations; cur = data->cmds; - last = cur; + last = ft_lstnew(NULL); + if (!last) + return ; + last->next = cur; optimizations = 0; while (cur && cur->next) { @@ -42,11 +54,7 @@ static void optimize_redundant(t_psdata *data, enum e_pscmd cmd1, ft_lstdelone(cur, free); optimizations++; } - last = last->next; - if (last) - cur = last->next; - else - cur = NULL; + set_last(&last, &cur); } if (optimizations) optimize_redundant(data, cmd1, cmd2); @@ -60,7 +68,9 @@ static void optimize_two_stack_ops(t_psdata *data, enum e_pscmd cmd1, int optimizations; cur = data->cmds; - last = cur; + last = ft_lstnew(NULL); + if (!last) + return ; optimizations = 0; while (cur && cur->next) { @@ -72,11 +82,7 @@ static void optimize_two_stack_ops(t_psdata *data, enum e_pscmd cmd1, ft_lstdelone(cur, free); optimizations++; } - last = last->next; - if (last) - cur = last->next; - else - cur = NULL; + set_last(&last, &cur); } if (optimizations) optimize_two_stack_ops(data, cmd1, cmd2, new_cmd); -- cgit v1.2.3