From: Lukas Jiriste Date: Mon, 11 Dec 2023 19:07:39 +0000 (+0100) Subject: Remove void* arithmetic, conform to the Norm X-Git-Url: https://git.ljiriste.work/?a=commitdiff_plain;h=cc103f42054c3240a2890abc43c759da6499c084;p=Libft.git Remove void* arithmetic, conform to the Norm Add -Wpedantic option for compilation to Makefile to catch all mistakes. Cast void* to char* for any arithmetic done. Split lines that are too long to fit the 80 char limit of the 42 Norm. --- diff --git a/Makefile b/Makefile index 7bd2475..6f68e1d 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ CC := cc -CFLAGS := -Wall -Wextra -Werror +CFLAGS := -Wall -Wextra -Werror -Wpedantic -std=c99 AR := ar RM := rm -f diff --git a/ft_arr/ft_vec_access.c b/ft_arr/ft_vec_access.c index e412129..8606b25 100644 --- a/ft_arr/ft_vec_access.c +++ b/ft_arr/ft_vec_access.c @@ -6,7 +6,7 @@ /* By: ljiriste +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/12/09 17:14:49 by ljiriste #+# #+# */ -/* Updated: 2023/12/11 10:21:49 by ljiriste ### ########.fr */ +/* Updated: 2023/12/11 20:00:39 by ljiriste ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,5 +19,5 @@ void *ft_vec_access(t_vec *vec, size_t index) return (NULL); if (index >= vec->size) return (NULL); - return (vec->vec + vec->el_size * index); + return ((char *)vec->vec + vec->el_size * index); } diff --git a/ft_arr/ft_vec_erase.c b/ft_arr/ft_vec_erase.c index 07f67c6..5912fe9 100644 --- a/ft_arr/ft_vec_erase.c +++ b/ft_arr/ft_vec_erase.c @@ -6,7 +6,7 @@ /* By: ljiriste +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/12/09 17:10:39 by ljiriste #+# #+# */ -/* Updated: 2023/12/11 10:24:50 by ljiriste ### ########.fr */ +/* Updated: 2023/12/11 19:59:50 by ljiriste ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,22 +18,25 @@ t_arr_stat ft_vec_erase(t_vec *vec, size_t index, void (*free_el)(void *)) return (ft_vec_erase_range(vec, 1, index, free_el)); } -t_arr_stat ft_vec_erase_range(t_vec *vec, size_t count, size_t index, void (*free_el)(void *)) +t_arr_stat ft_vec_erase_range(t_vec *vec, size_t count, size_t index, + void (*free_el)(void *)) { void *p; if (!vec || index + count > vec->size || index > SIZE_MAX - count) return (invalid_input); vec->size -= count; - ft_memmove(vec->vec + index, vec->vec + vec->el_size * (index + count), - vec->el_size * (vec->size - index)); + ft_memmove((char *)vec->vec + index, + (char *)vec->vec + vec->el_size * (index + count), + vec->el_size * (vec->size - index)); if (free_el) { - p = vec->vec + vec->size * vec->el_size; - while (p < vec->vec + (vec->size + count) * vec->el_size) + p = (char *)vec->vec + vec->size * vec->el_size; + while ((char *)p < (char *)vec->vec + + (vec->size + count) * vec->el_size) { free_el(p); - p += vec->el_size; + p = (char *)p + vec->el_size; } } return (success); diff --git a/ft_arr/ft_vec_free.c b/ft_arr/ft_vec_free.c index 632d042..c2cdd80 100644 --- a/ft_arr/ft_vec_free.c +++ b/ft_arr/ft_vec_free.c @@ -6,7 +6,7 @@ /* By: ljiriste +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/12/09 17:37:13 by ljiriste #+# #+# */ -/* Updated: 2023/12/11 10:21:49 by ljiriste ### ########.fr */ +/* Updated: 2023/12/11 20:01:30 by ljiriste ### ########.fr */ /* */ /* ************************************************************************** */ @@ -24,7 +24,7 @@ void ft_vec_free(t_vec *vec, void (*free_el)(void *)) { while (i < vec->size) { - free_el(vec->vec + i * vec->el_size); + free_el((char *)vec->vec + i * vec->el_size); ++i; } } diff --git a/ft_arr/ft_vec_insert.c b/ft_arr/ft_vec_insert.c index 86a7ca6..a550111 100644 --- a/ft_arr/ft_vec_insert.c +++ b/ft_arr/ft_vec_insert.c @@ -6,7 +6,7 @@ /* By: ljiriste +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/12/09 16:50:57 by ljiriste #+# #+# */ -/* Updated: 2023/12/11 10:23:44 by ljiriste ### ########.fr */ +/* Updated: 2023/12/11 19:53:35 by ljiriste ### ########.fr */ /* */ /* ************************************************************************** */ @@ -24,7 +24,7 @@ static t_arr_stat ft_vec_enlarge(t_vec *vec) } else if (vec->capacity == 0) { - if(ft_vec_reserve(vec, V_DEFAULT_CAPACITY)) + if (ft_vec_reserve(vec, V_DEFAULT_CAPACITY)) return (alloc_fail); } else @@ -40,7 +40,8 @@ t_arr_stat ft_vec_insert(t_vec *vec, void const *element, size_t index) return (ft_vec_insert_range(vec, element, 1, index)); } -t_arr_stat ft_vec_insert_range(t_vec *vec, void const *element, size_t count, size_t index) +t_arr_stat ft_vec_insert_range(t_vec *vec, void const *element, + size_t count, size_t index) { if (count == 0) return (success); @@ -52,9 +53,11 @@ t_arr_stat ft_vec_insert_range(t_vec *vec, void const *element, size_t count, si return (alloc_fail); } if (index < vec->size) - ft_memmove(vec->vec + vec->el_size * (index + count), - vec->vec + vec->el_size * index, vec->el_size * (vec->size - index)); - ft_memcpy(vec->vec + vec->el_size * index, element, vec->el_size * count); + ft_memmove((char *)vec->vec + vec->el_size * (index + count), + (char *)vec->vec + vec->el_size * index, + vec->el_size * (vec->size - index)); + ft_memcpy((char *)vec->vec + vec->el_size * index, element, + vec->el_size * count); if (index > vec->size) vec->size = index; ++vec->size; diff --git a/inc/ft_arr.h b/inc/ft_arr.h index b2478ce..f2bc093 100644 --- a/inc/ft_arr.h +++ b/inc/ft_arr.h @@ -6,7 +6,7 @@ /* By: ljiriste +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/12/09 13:58:15 by ljiriste #+# #+# */ -/* Updated: 2023/12/11 10:22:24 by ljiriste ### ########.fr */ +/* Updated: 2023/12/11 20:04:34 by ljiriste ### ########.fr */ /* */ /* ************************************************************************** */ @@ -41,10 +41,12 @@ void ft_vec_free(t_vec *vec, void (*free_el)(void *)); t_arr_stat ft_vec_reserve(t_vec *vec, size_t capacity); t_arr_stat ft_vec_insert(t_vec *vec, const void *element, size_t index); t_arr_stat ft_vec_append(t_vec *vec, const void *element); -t_arr_stat ft_vec_insert_range(t_vec *vec, const void *element, size_t count, size_t index); +t_arr_stat ft_vec_insert_range(t_vec *vec, const void *element, + size_t count, size_t index); t_arr_stat ft_vec_append_range(t_vec *vec, const void *element, size_t count); t_arr_stat ft_vec_erase(t_vec *vec, size_t index, void (*free_el)(void *)); -t_arr_stat ft_vec_erase_range(t_vec *vec, size_t count, size_t index, void (*free_el)(void *)); +t_arr_stat ft_vec_erase_range(t_vec *vec, size_t count, size_t index, + void (*free_el)(void *)); void *ft_vec_access(t_vec *vec, size_t index); #endif