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,13 +6,12 @@
/* By: tmaze <tmaze@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/03/23 17:31:19 by tmaze #+# #+# */
/* Updated: 2019/04/11 10:50:04 by tmaze ### ########.fr */
/* Updated: 2019/04/11 12:47:51 by mndhlovu ### ########.fr */
/* */
/* ************************************************************************** */
#ifndef LEM_IN_H
# define LEM_IN_H
# include "libft.h"
# include "limits.h"
@ -104,7 +103,7 @@ int lm_add_vertex(t_lmdata *ldata, char *raw, char flag
int lm_ext_conn(t_holder *holder, t_lmdata *data
, char *raw);
int lm_find_index(t_lmdata *data, char *str);
void lm_clear_unv(t_holder *holder);
int lm_get_value(char *line);
void lm_get_cmd_vert(int count, t_syntax *synt
, t_lmdata *ldata, char *line);

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);
}