Segfault on evaluation =(

corrected segfault due to stack size mismanagement
This commit is contained in:
Tanguy MAZE 2019-03-20 21:37:44 +01:00
parent eb861b6b98
commit d6d98b954f

View File

@ -6,7 +6,7 @@
/* By: tmaze <tmaze@student.42.fr> +#+ +:+ +#+ */ /* By: tmaze <tmaze@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2019/02/21 16:32:04 by tmaze #+# #+# */ /* Created: 2019/02/21 16:32:04 by tmaze #+# #+# */
/* Updated: 2019/03/02 17:37:07 by tmaze ### ########.fr */ /* Updated: 2019/03/20 21:33:00 by tmaze ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -16,17 +16,17 @@ void ps_rerot(t_psdata *data, char c)
{ {
t_stack *s; t_stack *s;
t_stack *tmp; t_stack *tmp;
size_t size; size_t *size;
if (c == 'a') if (c == 'a')
s = data->a; s = data->a;
if (c == 'a') if (c == 'a')
size = data->size_a; size = &(data->size_a);
else if (c == 'b') else if (c == 'b')
s = data->b; s = data->b;
if (c == 'b') if (c == 'b')
size = data->size_b; size = &(data->size_b);
if (s != NULL && size > 2) if (s != NULL && *size > 2)
{ {
tmp = s->next; tmp = s->next;
while (tmp->next != NULL) while (tmp->next != NULL)
@ -35,9 +35,10 @@ void ps_rerot(t_psdata *data, char c)
s = s->next; s = s->next;
} }
s->next = NULL; s->next = NULL;
(*size)--;
ps_stkpsh(data, c, tmp); ps_stkpsh(data, c, tmp);
} }
else if (s != NULL && size == 2) else if (s != NULL && *size == 2)
ps_swap(data, c); ps_swap(data, c);
} }