d82a5e6a34
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); |
||
---|---|---|
.. | ||
aligned_alloc.c | ||
allocated.c | ||
ALLOCM_ARENA.c | ||
allocm.c | ||
mallocx.c | ||
mremap.c | ||
posix_memalign.c | ||
rallocm.c | ||
rallocx.c | ||
thread_arena.c | ||
thread_tcache_enabled.c | ||
xallocx.c |