#include "cube3d.h" static int comp_addr(void *to_find, void *to_compare) { return (to_find == to_compare); } t_list **alloc_lst() { static t_list *lst = NULL; return (&lst); } void *gmalloc(size_t size) { void *tmp; t_list **lst; lst = alloc_lst(); tmp = ft_memalloc(size); if (!tmp) gexit(B_RED"failed allocation element"RESET"\n"); if (!ft_lstpush_back(lst, ft_lstcreate(tmp))) gexit(B_RED"failed allocation list of alocated address"RESET"\n"); return (tmp); } void gfree(void *addr) { t_list **lst; t_list *tmp; lst = alloc_lst(); tmp = ft_lstfind((*lst), addr, comp_addr); if (!tmp) ft_putstr_fd(B_RED"failed free element"RESET"\n", 2); ft_lsterase(tmp, free); } void gexit(char *str) { t_list **lst; lst = alloc_lst(); ft_putstr_fd(str, 2); ft_lstfree((*lst), free); exit(0); }