diff options
Diffstat (limited to 'wv_mem.c')
| -rw-r--r-- | wv_mem.c | 12 |
1 files changed, 11 insertions, 1 deletions
@@ -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; +} + |
