# HG changeset patch # User Timo Sirainen # Date 1195812617 -7200 # Node ID 9ca7f055b6460001d252292512582ca74df6aa87 # Parent d2c8269a0679e5b4b03d64ad2ed35b6dc1e0f17f Free mail structure before transaction is committed, so that it can update cache file within the transaction. diff -r d2c8269a0679 -r 9ca7f055b646 src/lib-storage/index/cydir/cydir-save.c --- a/src/lib-storage/index/cydir/cydir-save.c Thu Nov 22 09:36:57 2007 +0200 +++ b/src/lib-storage/index/cydir/cydir-save.c Fri Nov 23 12:10:17 2007 +0200 @@ -282,6 +282,8 @@ } } + if (ctx->mail != NULL) + mail_free(&ctx->mail); return 0; } diff -r d2c8269a0679 -r 9ca7f055b646 src/lib-storage/index/dbox/dbox-save.c --- a/src/lib-storage/index/dbox/dbox-save.c Thu Nov 22 09:36:57 2007 +0200 +++ b/src/lib-storage/index/dbox/dbox-save.c Fri Nov 23 12:10:17 2007 +0200 @@ -426,6 +426,9 @@ *t->ictx.last_saved_uid = next_uid - 1; dbox_index_append_commit(&ctx->append_ctx); + + if (ctx->mail != NULL) + mail_free(&ctx->mail); return 0; } diff -r d2c8269a0679 -r 9ca7f055b646 src/lib-storage/index/maildir/maildir-save.c --- a/src/lib-storage/index/maildir/maildir-save.c Thu Nov 22 09:36:57 2007 +0200 +++ b/src/lib-storage/index/maildir/maildir-save.c Fri Nov 23 12:10:17 2007 +0200 @@ -706,6 +706,8 @@ maildir_transaction_save_rollback(ctx); } + if (ctx->mail != NULL) + mail_free(&ctx->mail); return ret; } @@ -715,9 +717,6 @@ if (ctx->locked) maildir_uidlist_unlock(ctx->mbox->uidlist); - - if (ctx->mail != NULL) - mail_free(&ctx->mail); pool_unref(&ctx->pool); }