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.2.25.rc1~373 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=81bbb8ec793a59f724b7c7d242f2187ff50567c2;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));