summary refs log tree commit diff
path: root/dynarr.h
diff options
context:
space:
mode:
authorWormHeamer2025-02-28 14:54:00 -0500
committerWormHeamer2025-02-28 14:54:00 -0500
commit93608e2f90689c0eddd4714debcab9892f1dc7d7 (patch)
treedc82450cb45ea5df205257e84ca299cd0fc95077 /dynarr.h
parent528460889a2ea771e5ee81d6573a0e17d584ab6e (diff)
parent22ee6c213cc0058ca833b88f67cb938c20bfc740 (diff)
Merge remote-tracking branch 'refs/remotes/origin/master'
Diffstat (limited to 'dynarr.h')
-rw-r--r--dynarr.h27
1 files changed, 12 insertions, 15 deletions
diff --git a/dynarr.h b/dynarr.h
index 6feea5a..9fe8701 100644
--- a/dynarr.h
+++ b/dynarr.h
@@ -4,7 +4,6 @@
 #include <stdlib.h>
 #include <stdint.h>
 #include <string.h>
-#include <err.h>
 
 #include "stdwrm.h"
 
@@ -13,28 +12,26 @@ typedef struct { size_t count, capacity; } DynArrHeader;
 #define DYNARR(type) type *
 #define DA_HEADER(da) ((DynArrHeader*)(da) - 1)
 
-#define DA_DEFAULT_INIT_SIZE 16
-
-#define DA_INIT_SIZE(da, sz) do {\
-	char *stdwrm__da_init_ptr = ((char*)malloc(sizeof(DynArrHeader) + sz * sizeof(*da)));\
-	if (!stdwrm__da_init_ptr) err(1, "dynamic array allocation failed");\
-	da = (void *)(stdwrm__da_init_ptr + sizeof(DynArrHeader));\
-	*DA_HEADER(da) = (DynArrHeader) { 0, sz };\
+#define DA_INIT_CAP 16
+#define DA_INIT_SZ(da, cap) do {\
+	char *da_init_ptr = ((char*)malloc(sizeof(DynArrHeader) + cap * sizeof(*da)));\
+	if (!da_init_ptr) { fprintf(stderr, "dynamic array allocation failed\n"); abort(); }\
+	da = (void *)(da_init_ptr + sizeof(DynArrHeader));\
+	*DA_HEADER(da) = (DynArrHeader) { 0, cap };\
 } while(0)
 
-#define DA_INIT(da) DA_INIT_SIZE(da, DA_DEFAULT_INIT_SIZE)
+#define DA_INIT(da) DA_INIT_SZ(da, DA_INIT_CAP)
 
 #define DA_FREE(da)\
 	free(DA_HEADER(da))
 
 #define DA_LEN(da) (DA_HEADER(da)->count)
 #define DA_FIT(da, count) do {\
-	size_t stdwrm__da_fit_count = count;\
-	if (stdwrm__da_fit_count >= DA_HEADER(da)->capacity) {\
-		while (stdwrm__da_fit_count >= DA_HEADER(da)->capacity) DA_HEADER(da)->capacity <<= 1;\
-		char *stdwrm__da_fit_ptr = realloc(DA_HEADER(da), sizeof(DynArrHeader) + DA_HEADER(da)->capacity * sizeof(*da));\
-		if (!stdwrm__da_fit_ptr) err(1, "dynamic array reallocation failed");\
-		(da) = (void *)(stdwrm__da_fit_ptr + sizeof(DynArrHeader));\
+	if (count >= DA_HEADER(da)->capacity) {\
+		while (count >= DA_HEADER(da)->capacity) DA_HEADER(da)->capacity <<= 1;\
+		char *da_fit_ptr = realloc(DA_HEADER(da), sizeof(DynArrHeader) + DA_HEADER(da)->capacity * sizeof(*da));\
+		if (!da_fit_ptr) { fprintf(stderr, "dynamic array reallocation failed\n"); abort(); }\
+		(da) = (void *)(da_fit_ptr + sizeof(DynArrHeader));\
 	}\
 } while(0)