Refactor memory management in game_free and game_manager_destroy;

This commit is contained in:
whaffman 2025-06-10 20:24:26 +02:00
parent b965b9e5f5
commit e023ba20b6
3 changed files with 12 additions and 12 deletions

View File

@ -6,7 +6,7 @@
/* By: qmennen <qmennen@student.codam.nl> +#+ */
/* +#+ */
/* Created: 2025/04/15 15:46:08 by qmennen #+# #+# */
/* Updated: 2025/06/10 19:12:41 by whaffman ######## odam.nl */
/* Updated: 2025/06/10 20:22:34 by whaffman ######## odam.nl */
/* */
/* ************************************************************************** */
@ -86,6 +86,10 @@ static void free_scoreboard(mlx_t *mlx, t_scoreboard *scoreboard)
void game_free(t_game *game)
{
if (game->scoreboard && game->screen && game->screen->mlx)
free_scoreboard(game->screen->mlx, game->scoreboard);
else if (game->scoreboard)
free(game->scoreboard);
if (game->screen)
{
if (game->screen->hud)
@ -94,6 +98,7 @@ void game_free(t_game *game)
game->screen->hud = NULL;
}
mlx_delete_image(game->screen->mlx, game->screen->img);
free(game->screen);
}
if (game->player)
free(game->player);
@ -101,9 +106,6 @@ void game_free(t_game *game)
map_free(game->map);
if (game->keyboard)
free(game->keyboard);
if (game->scoreboard && game->screen && game->screen->mlx)
free_scoreboard(game->screen->mlx, game->scoreboard);
else if (game->scoreboard)
free(game->scoreboard);
game->scoreboard = NULL;
free(game);
}

View File

@ -6,7 +6,7 @@
/* By: qmennen <qmennen@student.codam.nl> +#+ */
/* +#+ */
/* Created: 2025/05/27 13:48:18 by qmennen #+# #+# */
/* Updated: 2025/06/10 19:16:24 by whaffman ######## odam.nl */
/* Updated: 2025/06/10 20:24:00 by whaffman ######## odam.nl */
/* */
/* ************************************************************************** */
@ -59,12 +59,10 @@ void game_manager_destroy(t_game_manager *manager)
menu_free(manager->menu, manager->game->screen);
if (manager->end_screen)
menu_free(manager->end_screen, manager->game->screen);
if (manager->game)
game_free(manager->game);
mlx_close_window(manager->game->screen->mlx);
mlx_terminate(manager->game->screen->mlx);
free(manager->game->screen);
free(manager->game);
if (manager->game)
game_free(manager->game);
free(manager);
exit(EXIT_SUCCESS);
}

View File

@ -6,7 +6,7 @@
/* By: qmennen <qmennen@student.codam.nl> +#+ */
/* +#+ */
/* Created: 2025/04/23 12:22:28 by whaffman #+# #+# */
/* Updated: 2025/06/03 13:28:30 by whaffman ######## odam.nl */
/* Updated: 2025/06/10 19:42:36 by whaffman ######## odam.nl */
/* */
/* ************************************************************************** */
@ -29,7 +29,7 @@ void map_free(t_map *map)
{
if (map->sprite_lib[i].texture)
mlx_delete_texture(map->sprite_lib[i].texture);
if (i < 4)
if (i < 5)
{
if (map->textures[i])
mlx_delete_texture(map->textures[i]);