Remove void* arithmetic, conform to the Norm
authorLukas Jiriste <ljiriste@student.42prague.com>
Mon, 11 Dec 2023 19:07:39 +0000 (20:07 +0100)
committerLukas Jiriste <ljiriste@student.42prague.com>
Mon, 11 Dec 2023 19:07:39 +0000 (20:07 +0100)
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.

Makefile
ft_arr/ft_vec_access.c
ft_arr/ft_vec_erase.c
ft_arr/ft_vec_free.c
ft_arr/ft_vec_insert.c
inc/ft_arr.h

index 7bd247532cd4cac73e7b185ca41ebee40e2c2346..6f68e1d248cc348f54fc0d70eebcfe34bfcb3d1e 100644 (file)
--- 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
index e4121294411490c44b9597a4a1505e359cb539a7..8606b25c61fb8b64a45afe42b38bb33beff401b2 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: ljiriste <ljiriste@student.42prague.com>   +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   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);
 }
index 07f67c689bf7825d340aaa21faf85ffcfd5998b0..5912fe992aeef4d124d18ad849830336fea3b3e8 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: ljiriste <ljiriste@student.42prague.com>   +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   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);
index 632d04207413929de5c740b408032238772582be..c2cdd80e41fd9e54e9894b75845e8564f7ea0bad 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: ljiriste <ljiriste@student.42prague.com>   +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   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;
                }
        }
index 86a7ca668fc73af9f9db50e91df40d3df254dd43..a55011112affb3194d257c9543a70c2ccc5f16b6 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: ljiriste <ljiriste@student.42prague.com>   +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   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;
index b2478ce391fd2b63b760ee2caa8b402d6975ba53..f2bc09333802ae47933250e4636d08bad11f5f81 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: ljiriste <ljiriste@student.42prague.com>   +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   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