summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWormHeamer2025-02-10 02:35:33 -0500
committerWormHeamer2025-02-10 02:35:33 -0500
commit1055461bcf7f0d20f8e6823094624138145d23ac (patch)
tree1da528b18aaec09edf2efd17153e44edf099646f
parent299e2d107eaebc45117c8ac6072bd860e2e4f9be (diff)
apply stdwrm__ prefix to vars; only evaluate DA_FIT count once
-rw-r--r--dynarr.h19
1 files changed, 10 insertions, 9 deletions
diff --git a/dynarr.h b/dynarr.h
index 46a77f9..6feea5a 100644
--- a/dynarr.h
+++ b/dynarr.h
@@ -16,9 +16,9 @@ typedef struct { size_t count, capacity; } DynArrHeader;
#define DA_DEFAULT_INIT_SIZE 16
#define DA_INIT_SIZE(da, sz) do {\
- char *da_init_ptr = ((char*)malloc(sizeof(DynArrHeader) + sz * sizeof(*da)));\
- if (!da_init_ptr) err(1, "dynamic array allocation failed");\
- da = (void *)(da_init_ptr + sizeof(DynArrHeader));\
+ 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 };\
} while(0)
@@ -29,11 +29,12 @@ typedef struct { size_t count, capacity; } DynArrHeader;
#define DA_LEN(da) (DA_HEADER(da)->count)
#define DA_FIT(da, count) do {\
- 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) err(1, "dynamic array reallocation failed");\
- (da) = (void *)(da_fit_ptr + sizeof(DynArrHeader));\
+ 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));\
}\
} while(0)
@@ -52,6 +53,6 @@ typedef struct { size_t count, capacity; } DynArrHeader;
for (typeof(da) name = (da); name < &(da)[DA_LEN(da)]; name++)
#define DA_FORVAL(da, name)\
- for (volatile typeof(*(da)) *da_iter = (da), name; da_iter < &(da)[DA_LEN(da)] && (name = *da_iter, 1); da_iter++)
+ for (volatile typeof(*(da)) *stdwrm__da_iter = (da), name; stdwrm__da_iter < &(da)[DA_LEN(da)] && (name = *stdwrm__da_iter, 1); stdwrm__da_iter++)
#endif