summaryrefslogtreecommitdiffstats
path: root/src/arena.c
diff options
context:
space:
mode:
authorJason Evans <jasone@canonware.com>2013-12-13 06:35:52 (GMT)
committerJason Evans <jasone@canonware.com>2013-12-13 06:35:52 (GMT)
commitd82a5e6a34f20698ab9368bb2b4953b81d175552 (patch)
tree23cbe8892adf46196cc6b2cf977704405c7798b7 /src/arena.c
parent0ac396a06a10f8a8c1d41c8771367625e7d49d07 (diff)
downloadjemalloc-d82a5e6a34f20698ab9368bb2b4953b81d175552.zip
jemalloc-d82a5e6a34f20698ab9368bb2b4953b81d175552.tar.gz
jemalloc-d82a5e6a34f20698ab9368bb2b4953b81d175552.tar.bz2
Implement the *allocx() API.
Implement the *allocx() API, which is a successor to the *allocm() API. The *allocx() functions are slightly simpler to use because they have fewer parameters, they directly return the results of primary interest, and mallocx()/rallocx() avoid the strict aliasing pitfall that allocm()/rallocx() share with posix_memalign(). The following code violates strict aliasing rules: foo_t *foo; allocm((void **)&foo, NULL, 42, 0); whereas the following is safe: foo_t *foo; void *p; allocm(&p, NULL, 42, 0); foo = (foo_t *)p; mallocx() does not have this problem: foo_t *foo = (foo_t *)mallocx(42, 0);
Diffstat (limited to 'src/arena.c')
-rw-r--r--src/arena.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/arena.c b/src/arena.c
index 145de86..4a46013 100644
--- a/src/arena.c
+++ b/src/arena.c
@@ -2031,7 +2031,7 @@ arena_ralloc(arena_t *arena, void *ptr, size_t oldsize, size_t size,
size_t usize = sa2u(size + extra, alignment);
if (usize == 0)
return (NULL);
- ret = ipallocx(usize, alignment, zero, try_tcache_alloc, arena);
+ ret = ipalloct(usize, alignment, zero, try_tcache_alloc, arena);
} else
ret = arena_malloc(arena, size + extra, zero, try_tcache_alloc);
@@ -2043,7 +2043,7 @@ arena_ralloc(arena_t *arena, void *ptr, size_t oldsize, size_t size,
size_t usize = sa2u(size, alignment);
if (usize == 0)
return (NULL);
- ret = ipallocx(usize, alignment, zero, try_tcache_alloc,
+ ret = ipalloct(usize, alignment, zero, try_tcache_alloc,
arena);
} else
ret = arena_malloc(arena, size, zero, try_tcache_alloc);
@@ -2061,7 +2061,7 @@ arena_ralloc(arena_t *arena, void *ptr, size_t oldsize, size_t size,
copysize = (size < oldsize) ? size : oldsize;
VALGRIND_MAKE_MEM_UNDEFINED(ret, copysize);
memcpy(ret, ptr, copysize);
- iqallocx(ptr, try_tcache_dalloc);
+ iqalloct(ptr, try_tcache_dalloc);
return (ret);
}