container_of(pool, struct allocfree_pool, pool);
unsigned char *new_mem;
- if (mem == NULL)
- return pool_allocfree_malloc(pool, new_size);
-
struct pool_block *block = pool_block_detach(apool, mem);
if ((new_mem = realloc(block, SIZEOF_POOLBLOCK+new_size)) == NULL)
i_fatal_status(FATAL_OUTOFMEM, "realloc(block, %"PRIuSIZE_T")",
container_of(pool, struct alloconly_pool, pool);
unsigned char *new_mem;
- if (mem == NULL)
- return pool_alloconly_malloc(pool, new_size);
-
if (new_size <= old_size)
return mem;
if (unlikely(dpool->data_stack_frame != data_stack_frame_id))
i_panic("pool_data_stack_realloc(): stack frame changed");
- if (mem == NULL)
- return pool_data_stack_malloc(pool, new_size);
-
if (old_size >= new_size)
return mem;
static void *pool_system_realloc(pool_t pool ATTR_UNUSED, void *mem,
size_t old_size, size_t new_size)
{
- if (mem == NULL) {
- i_assert(old_size == 0);
- return pool_system_malloc(pool, new_size);
- }
#if defined(HAVE_MALLOC_USABLE_SIZE)
i_assert(old_size == (size_t)-1 || mem == NULL ||
old_size <= malloc_usable_size(mem));
void *new_mem;
/* @UNSAFE */
- if (mem == NULL)
- return pool_unsafe_data_stack_malloc(pool, new_size);
-
if (old_size >= new_size)
return mem;
if (unlikely(new_size == 0 || new_size > POOL_MAX_ALLOC_SIZE))
i_panic("Trying to allocate %" PRIuSIZE_T " bytes", new_size);
+ if (mem == NULL)
+ return pool->v->malloc(pool, new_size);
+
return pool->v->realloc(pool, mem, old_size, new_size);
}