From: Dominik Kaiser <141638109+dpu-kaiser@users.noreply.github.com> Date: Wed, 17 Apr 2024 08:00:27 +0000 (+0200) Subject: Merge branch 'master' into add_2op_optimization X-Git-Url: https://git.dkaiser.de/?a=commitdiff_plain;h=09176f10ff4fbde374825a064241cdc3ff163623;p=42%2Fpush_swap.git Merge branch 'master' into add_2op_optimization --- 09176f10ff4fbde374825a064241cdc3ff163623 diff --cc cmd_optimization.c index 83e20c0,993ec1b..d0928f5 --- a/cmd_optimization.c +++ b/cmd_optimization.c @@@ -6,11 -6,7 +6,7 @@@ /* By: dkaiser >>>>>> Stashed changes /* */ /* ************************************************************************** */ @@@ -125,7 -56,4 +87,6 @@@ static void optimize_two_stack_ops(t_ps void optimize_commands(t_psdata *data) { optimize_redundant(data, PA, PB); + optimize_redundant(data, RB, RRB); + optimize_two_stack_ops(data, RA, RB, RR); - >>>>>>> Stashed changes } diff --cc main.c index ed2a579,221aefe..3881df0 --- a/main.c +++ b/main.c @@@ -6,55 -6,73 +6,73 @@@ /* By: dkaiser >>>>>> Stashed changes /* */ /* ************************************************************************** */ #include "libft/ft_printf.h" #include "push_swap.h" - int main(int argc, char *argv[]) + static void free_data(t_psdata *data) { - t_stack *stack_a; - t_stack *stack_b; - t_list *pscmds; - - stack_a = create_stack(argc, argv); - if (!stack_a) + if (data) { - ft_putendl_fd("Error", 2); - return (1); + if (data->a) + { + if (data->a->stack) + free(data->a->stack); + free(data->a); + } + if (data->b) + { + if (data->b->stack) + free(data->b->stack); + free(data->b); + } + free(data); } - <<<<<<< Updated upstream + } + + static t_psdata *initialize_data(int argc, char *argv[]) + { + t_psdata *result; - stack_b = malloc(sizeof(t_stack)); - if (!stack_b) + result = malloc(sizeof(t_psdata)); + if (result) { - //free everything + result->a = create_stack(argc, argv); + if (result->a) + { + result->b = malloc(sizeof(t_stack)); + if (result->b) + { + result->b->stack = malloc(sizeof(int) * (argc - 1)); + if (result->b->stack) + { + result->b->size = 0; + return result; + } + } + } } - stack_b->stack = malloc(sizeof(int) * (argc - 1)); - if (!stack_b->stack) + free_data(result); + return NULL; + } + + int main(int argc, char *argv[]) + { + t_psdata *data; + + data = initialize_data(argc, argv); + if (!data) { - //free everything + ft_putendl_fd("Error", 2); + return (1); } - stack_b->size = 0; - stack_optimize(stack_a); - pscmds = stack_sort(stack_a, stack_b); - /* optimize_commands(&pscmds); */ - print_commands(pscmds); - ft_printf("\nA: "); - stack_print(stack_a); - ft_printf("B: "); - stack_print(stack_b); - ======= stack_optimize(data->a); stack_sort(data); - /* optimize_commands(data); */ - /* print_commands(data->cmds); */ + optimize_commands(data); + print_commands(data->cmds); /* ft_printf("\nA: "); */ /* stack_print(data->a); */ /* ft_printf("B: "); */