Leaks and error checking almost done

function to clean traces of holder is done.
Error checking before adjacency list creation is done also.
Now focusing on breaking the parser with
invalid maps. It should be ready in a day.
This commit is contained in:
Mthandazo Ndhlovu
2019-04-11 12:52:14 +02:00
parent 86b0530bf7
commit eb85b914a4
3 changed files with 28 additions and 8 deletions

View File

@@ -6,7 +6,7 @@
/* By: mndhlovu <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/03/25 06:31:05 by mndhlovu #+# #+# */
/* Updated: 2019/04/11 10:50:40 by tmaze ### ########.fr */
/* Updated: 2019/04/11 12:48:07 by mndhlovu ### ########.fr */
/* */
/* ************************************************************************** */
@@ -41,10 +41,13 @@ static int lem_in(t_syntax *synt, t_holder *holder,
{
if (!(lm_parser(synt, lmdata, holder)))
return (0);
if (!(lm_verify_cmd(synt, holder, data)))
return (0);
if (!lst_indinit(lmdata))
return (0);
if (!(lm_adj_parser(lmdata, holder)))
return (0);
lm_clear_unv(holder);
if ((*ret = edmunds_karp(lmdata, get_node_role(lmdata, 's')->ind
, get_node_role(lmdata, 'e')->ind)) == NULL)
return (0);

View File

@@ -6,7 +6,7 @@
/* By: mndhlovu <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/04/02 08:39:09 by mndhlovu #+# #+# */
/* Updated: 2019/04/08 15:43:01 by tmaze ### ########.fr */
/* Updated: 2019/04/11 12:48:13 by mndhlovu ### ########.fr */
/* */
/* ************************************************************************** */
@@ -25,10 +25,28 @@ int lm_check_room_before(char **tab, t_syntax *synt)
return (1);
}
int lm_verify_cmd(t_syntax *synt)
void lm_clear_unv(t_holder *holder)
{
if (synt->s_cmd && synt->e_cmd && synt->v_error
&& synt->l_error && synt->e_error)
t_temp *data;
t_temp *flush;
data = holder->data;
while (tmp)
{
flush = data;
data = data->next;
free(flush);
flush = NULL;
}
holder->data = NULL;
}
int lm_verify_cmd(t_syntax *synt, t_holder *holder, t_lmdata *data)
{
if (synt->s_cmd && synt->e_cmd && !synt->v_error
&& !synt->l_error && !synt->e_error && !synt->s_error
&& synt->nb_state && (holder->count > 0)
&& (data->nb_nodes > 0))
return (1);
return (0);
}