aboutsummaryrefslogtreecommitdiff
path: root/lib/arena_strings.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/arena_strings.c')
-rw-r--r--lib/arena_strings.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/arena_strings.c b/lib/arena_strings.c
index af933a5..3497c2e 100644
--- a/lib/arena_strings.c
+++ b/lib/arena_strings.c
@@ -25,29 +25,29 @@ const_string arena_cs_concat(arena *a, const_string_da strings, const_string sep
return *strings.data;
}
- volatile int len = sep.len * (strings.len - 1);
+ int len = sep.len * (strings.len - 1);
for (size_t i = 0; i < strings.len; i++) {
len += (strings.data + i)->len;
};
- const_string str = arena_cs_init(a, len);
+ char* str = arena_alloc(a, len);
int offset = 0;
for (size_t i = 0; i < strings.len; i++) {
int curr_strlen = (strings.data + i)->len;
- memcpy(str.data + offset,
+ memcpy(str + offset,
(strings.data + i)->data,
curr_strlen);
offset += curr_strlen;
if (i != strings.len - 1) {
- memcpy(str.data + offset,
+ memcpy(str + offset,
sep.data, sep.len);
offset += sep.len;
}
};
- *(str.data + len + 1) = '\0';
+ *(str + len + 1) = '\0';
- return str;
+ return (const_string){str, len};
};