diff options
author | WormHeamer | 2025-02-10 02:35:33 -0500 |
---|---|---|
committer | WormHeamer | 2025-02-10 02:35:33 -0500 |
commit | 1055461bcf7f0d20f8e6823094624138145d23ac (patch) | |
tree | 1da528b18aaec09edf2efd17153e44edf099646f | |
parent | 299e2d107eaebc45117c8ac6072bd860e2e4f9be (diff) |
apply stdwrm__ prefix to vars; only evaluate DA_FIT count once
-rw-r--r-- | dynarr.h | 19 |
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 |