summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--push_swap.h4
-rw-r--r--stack_optimization.c12
2 files changed, 10 insertions, 6 deletions
diff --git a/push_swap.h b/push_swap.h
index beadcd0..29d0e41 100644
--- a/push_swap.h
+++ b/push_swap.h
@@ -6,7 +6,7 @@
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/04/12 16:59:09 by dkaiser #+# #+# */
-/* Updated: 2024/04/13 17:18:58 by dkaiser ### ########.fr */
+/* Updated: 2024/04/15 12:02:20 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
@@ -42,7 +42,7 @@ void run_command(t_list **stack_a, t_list **stack_b, t_list **cmds,
enum e_pscmd cmd);
void print_commands(t_list *cmds);
-void stack_optimize(t_list **stack);
+int stack_optimize(t_list **stack);
void optimize_commands(t_list **cmds);
void stack_sort(t_list **stack_a, t_list **stack_b, t_list **cmds);
diff --git a/stack_optimization.c b/stack_optimization.c
index f41b44a..2270896 100644
--- a/stack_optimization.c
+++ b/stack_optimization.c
@@ -6,7 +6,7 @@
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/04/13 15:25:05 by dkaiser #+# #+# */
-/* Updated: 2024/04/13 16:33:23 by dkaiser ### ########.fr */
+/* Updated: 2024/04/15 12:03:44 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
@@ -54,7 +54,7 @@ static void override_stack(t_list **stack, int *tmp_array)
}
}
-void stack_optimize(t_list **stack)
+int stack_optimize(t_list **stack)
{
int size;
int *tmp_array;
@@ -65,7 +65,7 @@ void stack_optimize(t_list **stack)
cur = *stack;
tmp_array = malloc(size * sizeof(int));
if (!tmp_array)
- ; // TODO: Error handling
+ return 1;
i = 0;
while (cur)
{
@@ -73,8 +73,12 @@ void stack_optimize(t_list **stack)
cur = cur->next;
}
if (i != size)
- ; // TODO: Error handling
+ {
+ free(tmp_array);
+ return 1;
+ }
sort_array(size, tmp_array);
i = 0;
override_stack(stack, tmp_array);
+ return 0;
}