From 780384484cf58939f9413d644ccdd8c40cb82ae5 Mon Sep 17 00:00:00 2001 From: Martin Kagamino Lehoux Date: Mon, 21 Jul 2025 14:37:12 +0200 Subject: feat(string): Arena base allocation for copy --- string.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'string.c') diff --git a/string.c b/string.c index 191059e..0fc8341 100644 --- a/string.c +++ b/string.c @@ -20,11 +20,12 @@ uint64_t Str_hash64(Str s) { return h; } -Str Str_copy(Arena *a, char *data, uintptr_t len) { - Str str = {.data = NULL, .len = len}; - str.data = new (a, char, len); - if (str.len) - memcpy(str.data, data, len); +Str* Str_copy(Arena *a, char *data, uintptr_t len) { + Str *str = new(a, Str, 1); + str->len = len; + str->data = new (a, char, len); + if (str->len) + memcpy(str->data, data, len); return str; } -- cgit v1.3