minishell
vect_dispose.c
Go to the documentation of this file.
1 /* ************************************************************************** */
2 /* */
3 /* ::: :::::::: */
4 /* vect_dispose.c :+: :+: :+: */
5 /* +:+ +:+ +:+ */
6 /* By: kfujita <kfujita@student.42tokyo.jp> +#+ +:+ +#+ */
7 /* +#+#+#+#+#+ +#+ */
8 /* Created: 2023/01/28 01:26:20 by kfujita #+# #+# */
9 /* Updated: 2023/01/30 14:21:52 by kfujita ### ########.fr */
10 /* */
11 /* ************************************************************************** */
12 
13 #include "ft_vect.h"
14 #include "stdlib.h"
15 
16 void vect_dispose(t_vect *vect)
17 {
18  vect->len = 0;
19  vect->cap = 0;
20  vect->elemsize = 0;
21  free(vect->p);
22  vect->p = NULL;
23 }
24 
25 void vect_dispose_each(t_vect *vect, void (*disposer)(void *))
26 {
27  size_t pos;
28 
29  pos = 0;
30  if (disposer != NULL)
31  while (pos < vect->len)
32  disposer(vect_at(vect, pos++));
33  vect_dispose(vect);
34 }
35 
36 static void ptrarr_disposer(void *ptr)
37 {
38  free(*((void **)ptr));
39 }
40 
42 {
44 }
void * vect_at(const t_vect *vect, size_t index)
Definition: vect_at.c:15
Definition: ft_vect.h:24
size_t cap
Definition: ft_vect.h:25
size_t elemsize
Definition: ft_vect.h:27
void * p
Definition: ft_vect.h:28
size_t len
Definition: ft_vect.h:26
void vect_dispose_ptrarr(t_vect *vect)
Definition: vect_dispose.c:41
static void ptrarr_disposer(void *ptr)
Definition: vect_dispose.c:36
void vect_dispose(t_vect *vect)
Definition: vect_dispose.c:16
void vect_dispose_each(t_vect *vect, void(*disposer)(void *))
Definition: vect_dispose.c:25