Mercurial > dovecot > core-2.2
changeset 2324:ea745d0c9c4b HEAD
Delay memory allocations for cache transaction. We don't always need it.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Thu, 15 Jul 2004 15:26:31 +0300 |
parents | ec1dac19cb06 |
children | 7613e0f68513 |
files | src/lib-index/mail-cache-transaction.c |
diffstat | 1 files changed, 9 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-index/mail-cache-transaction.c Mon Jul 12 21:14:45 2004 +0300 +++ b/src/lib-index/mail-cache-transaction.c Thu Jul 15 15:26:31 2004 +0300 @@ -45,10 +45,6 @@ ctx->cache = view->cache; ctx->view = view; ctx->trans = t; - ctx->cache_data = - buffer_create_dynamic(system_pool, 32768, (size_t)-1); - ctx->cache_data_seq = - buffer_create_dynamic(system_pool, 256, (size_t)-1); ctx->reservations = buffer_create_dynamic(system_pool, 256, (size_t)-1); @@ -64,8 +60,10 @@ ctx->view->transaction = NULL; ctx->view->trans_seq1 = ctx->view->trans_seq2 = 0; - buffer_free(ctx->cache_data); - buffer_free(ctx->cache_data_seq); + if (ctx->cache_data != NULL) + buffer_free(ctx->cache_data); + if (ctx->cache_data_seq != NULL) + buffer_free(ctx->cache_data_seq); buffer_free(ctx->reservations); i_free(ctx); } @@ -421,6 +419,11 @@ buffer_append(ctx->cache_data_seq, &ctx->prev_seq, sizeof(ctx->prev_seq)); ctx->prev_pos = size; + } else if (ctx->cache_data == NULL) { + ctx->cache_data = + buffer_create_dynamic(system_pool, 32768, (size_t)-1); + ctx->cache_data_seq = + buffer_create_dynamic(system_pool, 256, (size_t)-1); } memset(&new_rec, 0, sizeof(new_rec));