diff options
| author | Jesper Jensen <jesper@jnsn.dev> | 2025-11-20 22:31:53 +0100 |
|---|---|---|
| committer | Jesper Jensen <jesper@jnsn.dev> | 2025-11-20 22:31:53 +0100 |
| commit | acfa01613f6e7fbeace88a15df61252156d39cf1 (patch) | |
| tree | 9d81120f36c1cd74dfe5d2691ccf55c8707cd394 /inc/cad/util.h | |
| parent | 6e4df49832827e21c6d62f722767664e5cb9d575 (diff) | |
Separate everything out
Diffstat (limited to 'inc/cad/util.h')
| -rw-r--r-- | inc/cad/util.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/inc/cad/util.h b/inc/cad/util.h new file mode 100644 index 0000000..440d29b --- /dev/null +++ b/inc/cad/util.h @@ -0,0 +1,19 @@ +#pragma once + +#include <assert.h> +#include <limits.h> +#include <stddef.h> +#include <stdint.h> +#include <stdlib.h> + +static void resize_buffer(void **buffer, size_t *capacity, size_t elems, size_t elemSize) { + assert(elems > 0); + uint64_t newpower = (sizeof(elems) * CHAR_BIT) - __builtin_clzl(elems-1); + elems = 1 << newpower; + + if(elems != *capacity) { + *capacity = elems; + *buffer = realloc(*buffer, *capacity * elemSize); + } +} + |
