[Date Prev][Date Next]
malloc & free functions
I'm getting lost in all the malloc and free functions...
When is one supposed to use which function? When does it matter?
LBER_FREE(), LBER_MALLOC() -defined as the two above,
ber_memalloc_x(), ber_memfree_x() - as as above but with ctx parameter,
LDAP_FREE(), LDAP_MALLOC() plus _X variants,
ch_malloc, ch_free() - also as above,
slap_sl_malloc(), slap_sl_free() - separate slapd allocator.
E.g. liblber/decode.c often uses ber_memalloc_x(,ber->ber_memctx) to
allocate but then frees that memory with LBER_FREE() which does not
use a ctx. Should the free use ber->ber_memctx again? Or not, since
ber_set_option(,LBER_OPT_BER_MEMCTX,) can change a ber_memctx and
slapd uses it sometimes?
For sale: Parachute. Never opened, used once, slightly stained.