From: Lukas Jiriste Date: Wed, 10 Jul 2024 19:36:35 +0000 (+0200) Subject: Fix initialization of table rows X-Git-Url: https://git.ljiriste.work/?a=commitdiff_plain;h=f710b13f6d842d4f82d2e69c5063aa44267dd48e;p=Libft.git Fix initialization of table rows The initialization was caused by an inappropriate use of ft_vec_insert_range. I was not sure whether it fills the range with the single element or whether it insert range and I misread the source code --- diff --git a/ft_parse/ft_parsing_table_generate.c b/ft_parse/ft_parsing_table_generate.c index 3a275f0..62503e8 100644 --- a/ft_parse/ft_parsing_table_generate.c +++ b/ft_parse/ft_parsing_table_generate.c @@ -6,7 +6,7 @@ /* By: ljiriste +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/06/27 11:16:53 by ljiriste #+# #+# */ -/* Updated: 2024/07/10 20:25:44 by ljiriste ### ########.fr */ +/* Updated: 2024/07/10 21:33:47 by ljiriste ### ########.fr */ /* */ /* ************************************************************************** */ @@ -641,25 +641,41 @@ t_ft_stat construct_states(t_vec *states, const t_vec *rules, const t_vec *token t_ft_stat prefill_lookahead(t_vec *lookahead, size_t size) { - t_ft_stat res; + t_ft_stat res; + size_t i; const t_parser_action refuse = {.type = parser_refuse, .number = 0}; res = ft_vec_reserve(lookahead, size); if (res != success) return (res); - res = ft_vec_insert_range(lookahead, &refuse, size, 0); - return (res); + i = 0; + while (i < size) + { + res = ft_vec_append(lookahead, &refuse); + if (res != success) + return (res); + ++i; + } + return (success); } t_ft_stat prefill_gotos(t_vec *gotos, size_t size) { t_ft_stat res; + size_t i; const ssize_t refuse = -1; res = ft_vec_reserve(gotos, size); if (res != success) return (res); - res = ft_vec_insert_range(gotos, &refuse, size, 0); + i = 0; + while (i < size) + { + res = ft_vec_append(gotos, &refuse); + if (res != success) + return (res); + ++i; + } return (res); }