diff options
Diffstat (limited to 'upb/upb.c')
-rw-r--r-- | upb/upb.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -191,10 +191,8 @@ upb_arena *upb_arena_init(void *mem, size_t n, upb_alloc *alloc) { } } - a = mem; - mem = (char*)mem + sizeof(*a); + a = (void*)((char*)mem + n - sizeof(*a)); n -= sizeof(*a); - upb_arena_addblock(a, mem, n, owned); a->alloc.func = &upb_arena_doalloc; a->block_alloc = &upb_alloc_global; @@ -205,6 +203,8 @@ upb_arena *upb_arena_init(void *mem, size_t n, upb_alloc *alloc) { a->block_head = NULL; a->block_alloc = alloc; + upb_arena_addblock(a, mem, n, owned); + return a; } |