diff options
author | JozanLeClerc <bousset.rudy@gmail.com> | 2020-03-10 10:48:58 +0100 |
---|---|---|
committer | JozanLeClerc <bousset.rudy@gmail.com> | 2020-03-10 10:48:58 +0100 |
commit | abd20a73b4733a1a8b845f6ff0817ed77e545173 (patch) | |
tree | 24e9630c1895c7ba17b0cff8b4061a0cab2cf46f | |
parent | ok now (diff) | |
download | 42-cub3d-abd20a73b4733a1a8b845f6ff0817ed77e545173.tar.gz 42-cub3d-abd20a73b4733a1a8b845f6ff0817ed77e545173.tar.bz2 42-cub3d-abd20a73b4733a1a8b845f6ff0817ed77e545173.tar.xz 42-cub3d-abd20a73b4733a1a8b845f6ff0817ed77e545173.tar.zst 42-cub3d-abd20a73b4733a1a8b845f6ff0817ed77e545173.zip |
Freed multiple leaks
-rw-r--r-- | src/ft_exit.c | 4 | ||||
-rw-r--r-- | src/ft_init_lists.c | 2 | ||||
-rw-r--r-- | src/ft_init_s_ray.c | 2 | ||||
-rw-r--r-- | src/ft_raycasting.c | 14 | ||||
-rw-r--r-- | src/ft_save_to_bmp.c | 7 | ||||
-rw-r--r-- | src/ft_warp_level.c | 9 |
6 files changed, 24 insertions, 14 deletions
diff --git a/src/ft_exit.c b/src/ft_exit.c index 97c9e02..fb6de09 100644 --- a/src/ft_exit.c +++ b/src/ft_exit.c @@ -57,6 +57,10 @@ static void mlx_destroy_image(clist->wlist.wlx, clist->tlist[4].img); if (clist->mlist.isnlvl && clist->tlist[5].img) mlx_destroy_image(clist->wlist.wlx, clist->tlist[5].img); + if (clist->mlist.isftex && clist->tlist[6].img) + mlx_destroy_image(clist->wlist.wlx, clist->tlist[6].img); + if (clist->mlist.isctex && clist->tlist[7].img) + mlx_destroy_image(clist->wlist.wlx, clist->tlist[7].img); } int diff --git a/src/ft_init_lists.c b/src/ft_init_lists.c index bd2ae74..82f5c0e 100644 --- a/src/ft_init_lists.c +++ b/src/ft_init_lists.c @@ -76,6 +76,8 @@ static int8_t cl->f_rgb = ft_init_rgb(); cl->c_rgb = ft_init_rgb(); cl->rlist = ft_init_s_ray(); + if (!(cl->rlist.wall_dist_tab = (float*)malloc(1 * sizeof(float)))) + return (-1); cl->currlvl = 0; cl->walltexgood = 0; ft_init_funptr(cl); diff --git a/src/ft_init_s_ray.c b/src/ft_init_s_ray.c index e890d68..0d4ba96 100644 --- a/src/ft_init_s_ray.c +++ b/src/ft_init_s_ray.c @@ -11,6 +11,8 @@ /* ************************************************************************** */ #include <cub3d.h> +#include <stdlib.h> +#include <stddef.h> t_ray ft_init_s_ray(void) diff --git a/src/ft_raycasting.c b/src/ft_raycasting.c index 3cbd368..baa71af 100644 --- a/src/ft_raycasting.c +++ b/src/ft_raycasting.c @@ -83,17 +83,16 @@ static void void ft_castray(t_cub *cl) { - uint16_t i; - t_win *wl; - float *dist_tab; + uint16_t i; + t_win *wl; + ft_memdel((void**)&cl->rlist.wall_dist_tab); wl = &cl->wlist; i = (wl->y_size / 2) + 1; while (++i < wl->y_size) ft_floor_cast(i, cl); - if (!(dist_tab = malloc(sizeof(float) * cl->wlist.x_size))) - return ; - if (!(cl->rlist.wall_dist_tab = malloc(sizeof(float) * cl->wlist.x_size))) + if (!(cl->rlist.wall_dist_tab = + (float*)malloc(sizeof(float) * cl->wlist.x_size))) return ; i = 0; while (i < wl->x_size) @@ -102,8 +101,7 @@ void ft_choose_tex(cl); ft_calc_tex(cl); ft_draw_verline(cl, i, cl->rlist.wall_t, cl->rlist.wall_b); - dist_tab[i] = cl->rlist.wall_dist; - cl->rlist.wall_dist_tab = dist_tab; + cl->rlist.wall_dist_tab[i] = cl->rlist.wall_dist; i++; } } diff --git a/src/ft_save_to_bmp.c b/src/ft_save_to_bmp.c index 90bbb1f..ae3a2b6 100644 --- a/src/ft_save_to_bmp.c +++ b/src/ft_save_to_bmp.c @@ -93,9 +93,10 @@ static int8_t bmp_info.size_image = size; if (!(fd = open(fname, O_RDWR | O_CREAT, 0644))) return (-1); - write(fd, &bmp_file, sizeof(t_bmp_file)); - write(fd, &bmp_info, sizeof(t_bmp_info)); - write(fd, bmp, size); + if (!write(fd, &bmp_file, sizeof(t_bmp_file)) || + !write(fd, &bmp_info, sizeof(t_bmp_info)) || + !write(fd, bmp, size)) + return (-1); close(fd); return (0); } diff --git a/src/ft_warp_level.c b/src/ft_warp_level.c index 4a02c2b..1f744c2 100644 --- a/src/ft_warp_level.c +++ b/src/ft_warp_level.c @@ -59,13 +59,16 @@ static void cl->f_rgb = ft_init_rgb(); cl->c_rgb = ft_init_rgb(); cl->rlist = ft_init_s_ray(); - i = 0; - while (i <= 5) + i = -1; + while (++i <= 5) { mlx_destroy_image(cl->wlist.wlx, cl->tlist[i].img); cl->tlist[i].img = NULL; - i++; } + if (cl->mlist.isftex && cl->tlist[6].img) + mlx_destroy_image(cl->wlist.wlx, cl->tlist[6].img); + if (cl->mlist.isctex && cl->tlist[7].img) + mlx_destroy_image(cl->wlist.wlx, cl->tlist[7].img); } static void |