Const all the things!

This commit is contained in:
Lucien Cartier-Tilet 2020-10-08 11:11:28 +02:00
parent ff59b301cc
commit 193bf1d75f
Signed by: phundrak
GPG Key ID: BD7789E705CB8DCA
2 changed files with 22 additions and 22 deletions

View File

@ -11,7 +11,7 @@ Vector vec_new(Destructor destructor)
return self; return self;
} }
Vector vec_with_capacity(Destructor t_destructor, size_t t_capacity) Vector vec_with_capacity(Destructor const t_destructor, size_t const t_capacity)
{ {
Vector self = vec_new(t_destructor); Vector self = vec_new(t_destructor);
free(self.elements); free(self.elements);
@ -20,17 +20,17 @@ Vector vec_with_capacity(Destructor t_destructor, size_t t_capacity)
return self; return self;
} }
void *vec_at(Vector *self, size_t t_index) void *vec_at(Vector const *const self, size_t const t_index)
{ {
return self->elements[t_index]; return self->elements[t_index];
} }
void *vec_safe_at(Vector *self, size_t t_index) void *vec_safe_at(Vector const *const self, size_t const t_index)
{ {
return (t_index >= vec_length(self)) ? NULL : vec_at(self, t_index); return (t_index >= vec_length(self)) ? NULL : vec_at(self, t_index);
} }
static void vec_maybe_destroy_element(Vector *self, size_t t_index) static void vec_maybe_destroy_element(Vector const *self, size_t const t_index)
{ {
void *element = vec_at(self, t_index); void *element = vec_at(self, t_index);
if (self->destroy) { if (self->destroy) {
@ -38,22 +38,22 @@ static void vec_maybe_destroy_element(Vector *self, size_t t_index)
} }
} }
void *vec_last(Vector *self) void *vec_last(Vector const *const self)
{ {
return vec_at(self, vec_length(self) - 1); return vec_at(self, vec_length(self) - 1);
} }
size_t vec_length(Vector *self) size_t vec_length(Vector const *const self)
{ {
return self->length; return self->length;
} }
size_t vec_capacity(Vector *self) size_t vec_capacity(Vector const *const self)
{ {
return self->capacity; return self->capacity;
} }
static void vec_realloc(Vector *self) static void vec_realloc(Vector *const self)
{ {
self->capacity *= 2; self->capacity *= 2;
self->elements = realloc(self->elements, sizeof(void *) * vec_capacity(self)); self->elements = realloc(self->elements, sizeof(void *) * vec_capacity(self));
@ -63,7 +63,7 @@ static void vec_realloc(Vector *self)
} }
} }
void vec_push(Vector *self, void *t_element) void vec_push(Vector *const self, void const *const t_element)
{ {
if (vec_length(self) >= vec_capacity(self)) { if (vec_length(self) >= vec_capacity(self)) {
vec_realloc(self); vec_realloc(self);
@ -71,7 +71,7 @@ void vec_push(Vector *self, void *t_element)
self->elements[(*self).length++] = t_element; self->elements[(*self).length++] = t_element;
} }
void vec_pop(Vector *self) void vec_pop(Vector *const self)
{ {
if (vec_length(self) <= 0) { if (vec_length(self) <= 0) {
return; return;
@ -80,7 +80,7 @@ void vec_pop(Vector *self)
--(*self).length; --(*self).length;
} }
void vec_shrink_to_fit(Vector *self) void vec_shrink_to_fit(Vector *const self)
{ {
self->capacity = self->length; self->capacity = self->length;
self->elements = realloc(self->elements, sizeof(void *) * vec_capacity(self)); self->elements = realloc(self->elements, sizeof(void *) * vec_capacity(self));
@ -90,7 +90,7 @@ void vec_shrink_to_fit(Vector *self)
} }
} }
void vec_delete(Vector *self) void vec_delete(Vector *const self)
{ {
if (self->destroy) { if (self->destroy) {
for (size_t i = 0; i < vec_length(self); ++i) { for (size_t i = 0; i < vec_length(self); ++i) {

View File

@ -41,16 +41,16 @@ typedef struct Vector_s {
} Vector; } Vector;
Vector vec_new(Destructor destructor); Vector vec_new(Destructor destructor);
Vector vec_with_capacity(Destructor destructor, size_t capacity); Vector vec_with_capacity(Destructor const destructor, size_t const capacity);
void * vec_at(Vector *self, size_t index); void * vec_at(Vector const *const self, size_t const index);
void * vec_safe_at(Vector *self, size_t index); void * vec_safe_at(Vector const *const self, size_t const index);
void * vec_last(Vector *self); void * vec_last(Vector const *const self);
size_t vec_length(Vector *self); size_t vec_length(Vector const *const self);
size_t vec_capacity(Vector *self); size_t vec_capacity(Vector const *const self);
void vec_push(Vector *self, void *element); void vec_push(Vector *const self, void const *const element);
void vec_pop(Vector *self); void vec_pop(Vector *const self);
void vec_shrink_to_fit(Vector *self); void vec_shrink_to_fit(Vector *const self);
void vec_delete(Vector *self); void vec_delete(Vector *const self);
#endif /* VECTOR_H */ #endif /* VECTOR_H */