summaryrefslogtreecommitdiffstats
path: root/wv_mem.c
diff options
context:
space:
mode:
Diffstat (limited to 'wv_mem.c')
-rw-r--r--wv_mem.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/wv_mem.c b/wv_mem.c
index 7bf54d6..c1d810b 100644
--- a/wv_mem.c
+++ b/wv_mem.c
@@ -33,7 +33,7 @@ struct wv_arena *wv_arena_create(size_t n)
return arena;
}
-wv_ref wv_alloc(struct wv_arena *arena, size_t n)
+wv_ref wv_arena_alloc(struct wv_arena *arena, size_t n)
{
wv_ref ref;
unsigned char *new_buf;
@@ -89,3 +89,13 @@ void wv_arena_destroy(struct wv_arena *arena)
free(arena);
}
+wv_ref wv_arena_push_string(struct wv_arena *arena, const char *src,
+ size_t len)
+{
+ wv_ref ref = wv_arena_alloc(arena, len + 1);
+ char *dst = (char *)WV_ADDR(arena, ref);
+ memcpy(dst, src, len);
+ dst[len] = '\0';
+ return ref;
+}
+