From dbfabccd2a9f22887c250dc7e16bff1ba1fd8b36 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Sat, 10 Jul 2004 14:15:42 +0300 Subject: [PATCH] fetch_mail needs to be deinitialized before transaction is committed or rollbacked --HG-- branch : HEAD --- src/lib-storage/index/index-transaction.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/lib-storage/index/index-transaction.c b/src/lib-storage/index/index-transaction.c index a076d19421..9678f94baa 100644 --- a/src/lib-storage/index/index-transaction.c +++ b/src/lib-storage/index/index-transaction.c @@ -19,9 +19,6 @@ static void index_transaction_free(struct index_transaction_context *t) mail_cache_view_close(t->cache_view); mail_index_view_close(t->trans_view); mail_index_view_unlock(t->ibox->view); - - if (t->fetch_mail.pool != NULL) - index_mail_deinit(&t->fetch_mail); i_free(t); } @@ -33,6 +30,9 @@ int index_transaction_commit(struct mailbox_transaction_context *_t) uoff_t offset; int ret; + if (t->fetch_mail.pool != NULL) + index_mail_deinit(&t->fetch_mail); + ret = mail_index_transaction_commit(t->trans, &seq, &offset); if (ret < 0) mail_storage_set_index_error(t->ibox); @@ -51,6 +51,9 @@ void index_transaction_rollback(struct mailbox_transaction_context *_t) struct index_transaction_context *t = (struct index_transaction_context *)_t; + if (t->fetch_mail.pool != NULL) + index_mail_deinit(&t->fetch_mail); + mail_index_transaction_rollback(t->trans); index_transaction_free(t); } -- 2.47.3