summaryrefslogtreecommitdiff
path: root/stack_utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'stack_utils.c')
-rw-r--r--stack_utils.c32
1 files changed, 17 insertions, 15 deletions
diff --git a/stack_utils.c b/stack_utils.c
index f240395..720d13c 100644
--- a/stack_utils.c
+++ b/stack_utils.c
@@ -6,7 +6,7 @@
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/04/12 20:31:30 by dkaiser #+# #+# */
-/* Updated: 2024/04/15 21:53:40 by dkaiser ### ########.fr */
+/* Updated: 2024/04/16 16:48:32 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
@@ -28,21 +28,23 @@ void stack_push(t_stack *dst_stack, t_stack *src_stack)
{
int i;
- i = dst_stack->size;
- while (i > 0)
- {
- dst_stack->stack[i] = dst_stack->stack[i-1];
- i--;
- }
- dst_stack->stack[0] = src_stack->stack[0];
- dst_stack->size++;
- i = 1;
- while (i < src_stack->size)
- {
- src_stack->stack[i-1] = src_stack->stack[i];
- i++;
+ if (src_stack->size > 0) {
+ i = dst_stack->size;
+ while (i > 0)
+ {
+ dst_stack->stack[i] = dst_stack->stack[i-1];
+ i--;
+ }
+ dst_stack->stack[0] = src_stack->stack[0];
+ dst_stack->size++;
+ i = 1;
+ while (i < src_stack->size)
+ {
+ src_stack->stack[i-1] = src_stack->stack[i];
+ i++;
+ }
+ src_stack->size--;
}
- src_stack->size--;
}
void stack_rotate(t_stack *stack)