From c37c3bec113cd17a290ae24389fed180852405d4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Luk=C3=A1=C5=A1=20Ji=C5=99i=C5=A1t=C4=9B?= Date: Sun, 9 Jun 2024 18:48:41 +0200 Subject: [PATCH] Add error messages, fix "leak" --- src/load.c | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/load.c b/src/load.c index 10e6311..3b83342 100644 --- a/src/load.c +++ b/src/load.c @@ -35,12 +35,10 @@ static int process_train(char **split_line, t_vec *catalog, unsigned short era) new_train.era = era; new_train.size = ft_atoi(split_line[2]); new_train.base = process_characteristics(split_line); - if (ft_vec_append(catalog, &new_train) != success) - { - free(new_train.name); - return (4); - } - return (0); + if (ft_vec_append(catalog, &new_train) == success) + return (0); + free(new_train.name); + return (4); } static int process_upgrade(char **split_line, t_vec *catalog) @@ -58,9 +56,15 @@ static int process_upgrade(char **split_line, t_vec *catalog) { train = ft_vec_access(catalog, i); if (!ft_strcmp(split_line[1], train->name)) - return (4 * (ft_vec_append(&train->upgrades, &upgrade) != success)); + { + if (ft_vec_append(&train->upgrades, &upgrade) == success) + return (0); + free(upgrade.name); + return (4); + } ++i; } + free(upgrade.name); return (5); } @@ -75,9 +79,13 @@ static int process_line(const char *line, t_vec *catalog, unsigned short era) if (!split_line) return (1); if (!ft_strcmp(split_line[1], "passengers") || !ft_strcmp(split_line[1], "cargo")) - process_train(split_line, catalog, era); + { + if (process_train(split_line, catalog, era)) + ft_printf("Error loading train %s!\n", split_line[0]); + } else if (ft_strcmp(split_line[1], "coupling")) - process_upgrade(split_line, catalog); + if (process_upgrade(split_line, catalog)) + ft_printf("Error loading upgrade %s for train %s!\n", split_line[0], split_line[1]); i = 0; while (split_line[i]) free(split_line[i++]); -- 2.30.2