]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
fetch_mail needs to be deinitialized before transaction is
authorTimo Sirainen <tss@iki.fi>
Sat, 10 Jul 2004 11:15:42 +0000 (14:15 +0300)
committerTimo Sirainen <tss@iki.fi>
Sat, 10 Jul 2004 11:15:42 +0000 (14:15 +0300)
committed or rollbacked

--HG--
branch : HEAD

src/lib-storage/index/index-transaction.c

index a076d194219cbd9e341ae7a13777fc20d29f00a2..9678f94baa8dc42a419f41a04934d4335d92ba3d 100644 (file)
@@ -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);
 }