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:
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);
}