@@ -42,10 +42,21 @@ static inline void *vector_init_zeroed(size_t item_size, size_t capacity)
4242 header -> size = capacity ;
4343 header -> capacity = capacity ;
4444 header -> initial_capacity = capacity ;
45-
4645 return (header + 1 );
4746}
4847
48+ int verif_success (const size_t new_size , size_t old_size ,
49+ vector_header_t * header )
50+ {
51+ if (new_size < old_size ) {
52+ header -> size = new_size ;
53+ return (0 );
54+ }
55+ if (new_size == old_size )
56+ return (0 );
57+ return (1 );
58+ }
59+
4960int vector_resize_impl (void * * v , const size_t new_size ,
5061 const size_t item_size )
5162{
@@ -61,18 +72,15 @@ int vector_resize_impl(void **v, const size_t new_size,
6172 }
6273 header = VECTOR_HEADER (* v );
6374 old_size = header -> size ;
64- if (new_size < old_size ) {
65- header -> size = new_size ;
66- return VECTOR_SUCCESS ;
67- }
68- if (new_size == old_size )
75+ if (verif_success (new_size , old_size , header ) == 0 )
6976 return VECTOR_SUCCESS ;
7077 tmp = vector_ensure_capacity (* v , new_size - old_size , item_size );
7178 if (!tmp )
7279 return VECTOR_FAILURE ;
7380 * v = tmp ;
7481 header = VECTOR_HEADER (* v );
75- memset ((unsigned char * )(* v ) + (old_size * item_size ), 0 , (new_size - old_size ) * item_size );
82+ memset ((unsigned char * )(* v ) + (old_size * item_size ),
83+ 0 , (new_size - old_size ) * item_size );
7684 header -> size = new_size ;
7785 return VECTOR_SUCCESS ;
7886}
@@ -87,7 +95,8 @@ int vector_shrink_to_fit_impl(void **v, const size_t item_size)
8795 header = VECTOR_HEADER (* v );
8896 if (header -> capacity == header -> size )
8997 return VECTOR_SUCCESS ;
90- new_header = realloc (header , sizeof (vector_header_t ) + (header -> size * item_size ));
98+ new_header = realloc (header ,
99+ sizeof (vector_header_t ) + (header -> size * item_size ));
91100 if (!new_header )
92101 return VECTOR_FAILURE ;
93102 new_header -> capacity = new_header -> size ;
0 commit comments