From b0db3b8a7c4dd03c759fb88bed7d5ce1d41a6059 Mon Sep 17 00:00:00 2001 From: Dominik Kaiser Date: Tue, 16 Apr 2024 09:28:12 +0200 Subject: Simplify arguments into t_psdata --- main.c | 73 ++++++++++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 51 insertions(+), 22 deletions(-) (limited to 'main.c') diff --git a/main.c b/main.c index 803f6eb..9d083c0 100644 --- a/main.c +++ b/main.c @@ -6,44 +6,73 @@ /* By: dkaiser a) { - ft_putendl_fd("Error", 2); - return (1); + 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); +} + +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); + stack_optimize(data->a); + data->cmds = stack_sort(data->a, data->b); /* optimize_commands(&pscmds); */ - print_commands(pscmds); + print_commands(data->cmds); ft_printf("\nA: "); - stack_print(stack_a); + stack_print(data->a); ft_printf("B: "); - stack_print(stack_b); + stack_print(data->b); return (0); } -- cgit v1.2.3 From 50e53dbdf4e6e6ec7d1514cc44fa06e689a584b7 Mon Sep 17 00:00:00 2001 From: Dominik Kaiser Date: Tue, 16 Apr 2024 09:36:40 +0200 Subject: Adjust main to correctly use and free data --- main.c | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'main.c') diff --git a/main.c b/main.c index 9d083c0..dd3e9c4 100644 --- a/main.c +++ b/main.c @@ -6,7 +6,7 @@ /* By: dkaiser a) + if (data) { - 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); + 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); } - free(data); } static t_psdata *initialize_data(int argc, char *argv[]) @@ -67,7 +70,7 @@ int main(int argc, char *argv[]) return (1); } stack_optimize(data->a); - data->cmds = stack_sort(data->a, data->b); + stack_sort(data); /* optimize_commands(&pscmds); */ print_commands(data->cmds); ft_printf("\nA: "); -- cgit v1.2.3