From: Timo Sirainen Date: Fri, 29 Apr 2016 09:54:46 +0000 (+0300) Subject: lib: Implement i_realloc(mem==NULL) more efficiently X-Git-Tag: 2.3.0.rc1~3914 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7311925c65813a1902e41eb5aa397ee5b839d39e;p=thirdparty%2Fdovecot%2Fcore.git lib: Implement i_realloc(mem==NULL) more efficiently Various parts of code use this to allocate the initial buffer. We can do this more efficiently by using calloc(). --- diff --git a/src/lib/mempool-system.c b/src/lib/mempool-system.c index ab83e22310..2cc5d3ae6f 100644 --- a/src/lib/mempool-system.c +++ b/src/lib/mempool-system.c @@ -119,6 +119,10 @@ static void *pool_system_realloc(pool_t pool ATTR_UNUSED, void *mem, if (unlikely(new_size == 0 || new_size > SSIZE_T_MAX)) i_panic("Trying to allocate %"PRIuSIZE_T" bytes", new_size); + if (mem == NULL) { + i_assert(old_size == 0); + return pool_system_malloc(pool, new_size); + } #if !defined(USE_GC) && defined(HAVE_MALLOC_USABLE_SIZE) i_assert(old_size == (size_t)-1 || mem == NULL || old_size <= malloc_usable_size(mem));