jrk

my own c stdlib to keep myself sane
git clone git://git.jakekoroman.com/jrk
Log | Files | Refs

commit f33a5c403aa114f14fa4a811f6f74172a505fd7f
parent e83b7450edfec4e90e9d8e2443f3bc352c442cf7
Author: Jake Koroman <jake@jakekoroman.com>
Date:   Sun,  9 Nov 2025 18:02:00 -0500

add JRK_DEFAULT_ARRAY_FREE_FN.

Diffstat:
Mjrk.h | 8++++++--
1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/jrk.h b/jrk.h @@ -167,6 +167,10 @@ char *jrk_tmpstrings_pushf(char*, ...); #define JRK_ARRAY_DEFAULT_REALLOC_FN jrk_erealloc #endif +#ifndef JRK_ARRAY_DEFAULT_FREE_FN + #define JRK_ARRAY_DEFAULT_FREE_FN free +#endif + typedef void *(*jrk_array_alloc_function_t) (u64, u64, void*); typedef void *(*jrk_array_realloc_function_t) (void*, u64, u64, void*); @@ -212,7 +216,7 @@ typedef void *(*jrk_array_realloc_function_t) (void*, u64, u64, void*); void jrk_array_##type##_deinit(jrk_Array_##type *arr) \ { \ if ((arr)->items && !(arr)->allocfn) \ - free((arr)->items); \ + JRK_ARRAY_DEFAULT_FREE_FN((arr)->items); \ } \ \ bool jrk_array_##type##_setcap(jrk_Array_##type *arr, u64 new_capacity) \ @@ -346,7 +350,7 @@ jrk_sb_append_buf_at(jrk_StringBuilder *sb, char *buf, u64 buf_sz, u64 idx) sb->capacity *= 2; } sb->items = __jrk_array_realloc(sb, sb->capacity); - if (!sb->items) return false; \ + if (!sb->items) return false; memset(sb->items + sb->size, 0, sb->capacity - sb->size); }