summaryrefslogtreecommitdiff
path: root/inc/cad/util.h
diff options
context:
space:
mode:
authorJesper Jensen <jesper@jnsn.dev>2025-11-20 22:31:53 +0100
committerJesper Jensen <jesper@jnsn.dev>2025-11-20 22:31:53 +0100
commitacfa01613f6e7fbeace88a15df61252156d39cf1 (patch)
tree9d81120f36c1cd74dfe5d2691ccf55c8707cd394 /inc/cad/util.h
parent6e4df49832827e21c6d62f722767664e5cb9d575 (diff)
Separate everything out
Diffstat (limited to 'inc/cad/util.h')
-rw-r--r--inc/cad/util.h19
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);
+ }
+}
+