From: Lukáš Jiřiště Date: Sun, 9 Jun 2024 16:48:41 +0000 (+0200) Subject: Add error messages, fix "leak" X-Git-Url: https://git.ljiriste.work/?a=commitdiff_plain;h=c37c3bec113cd17a290ae24389fed180852405d4;p=railnation_calc.git Add error messages, fix "leak" --- 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++]);