add vec_shrink

This commit is contained in:
2023-10-25 08:42:38 -07:00
parent ea2b8900dd
commit 203124ed6a
4 changed files with 226 additions and 0 deletions

View File

@@ -95,3 +95,17 @@ void *vec_remove(Vector *vec, size_t index) {
vec->length -= 1;
return r;
}
int vec_shrink(Vector *vec) {
if (vec_len(vec) == vec_cap(vec)) {
return 0;
}
vec->capacity = vec_len(vec);
vec->elements = reallocf(vec, sizeof(void*) * vec_cap(vec));
if (vec->elements == NULL) {
return -1;
}
return 0;
}