aboutsummaryrefslogtreecommitdiff
path: root/string.c
diff options
context:
space:
mode:
Diffstat (limited to 'string.c')
-rw-r--r--string.c11
1 files changed, 6 insertions, 5 deletions
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;
}