dovecot-1.0: maildir_uidlist_sync_init() was called wrong, altho...

dovecot at dovecot.org dovecot at dovecot.org
Sat Dec 1 09:25:43 EET 2007


details:   http://hg.dovecot.org/dovecot-1.0/rev/b63f48fbeb2a
changeset: 5471:b63f48fbeb2a
user:      Timo Sirainen <tss at iki.fi>
date:      Sat Dec 01 09:25:39 2007 +0200
description:
maildir_uidlist_sync_init() was called wrong, although it just happened to
work.

diffstat:

4 files changed, 8 insertions(+), 8 deletions(-)
src/lib-storage/index/maildir/maildir-save.c    |    3 ++-
src/lib-storage/index/maildir/maildir-sync.c    |    4 +++-
src/lib-storage/index/maildir/maildir-uidlist.c |    6 ++----
src/lib-storage/index/maildir/maildir-uidlist.h |    3 +--

diffs (63 lines):

diff -r 78fd6c834a29 -r b63f48fbeb2a src/lib-storage/index/maildir/maildir-save.c
--- a/src/lib-storage/index/maildir/maildir-save.c	Wed Nov 28 17:46:37 2007 +0200
+++ b/src/lib-storage/index/maildir/maildir-save.c	Sat Dec 01 09:25:39 2007 +0200
@@ -501,7 +501,8 @@ int maildir_transaction_save_commit_pre(
 	i_assert(ctx->output == NULL);
 	i_assert(ctx->finished);
 
-	if (maildir_uidlist_sync_init(ctx->mbox->uidlist, TRUE,
+	if (maildir_uidlist_sync_init(ctx->mbox->uidlist,
+				      MAILDIR_UIDLIST_SYNC_PARTIAL,
 				      &ctx->uidlist_sync_ctx) <= 0) {
 		/* error or timeout - our transaction is broken */
 		maildir_transaction_save_rollback(ctx);
diff -r 78fd6c834a29 -r b63f48fbeb2a src/lib-storage/index/maildir/maildir-sync.c
--- a/src/lib-storage/index/maildir/maildir-sync.c	Wed Nov 28 17:46:37 2007 +0200
+++ b/src/lib-storage/index/maildir/maildir-sync.c	Sat Dec 01 09:25:39 2007 +0200
@@ -1349,6 +1349,7 @@ static int maildir_sync_context(struct m
 static int maildir_sync_context(struct maildir_sync_context *ctx, bool forced,
 				bool sync_last_commit)
 {
+	enum maildir_uidlist_sync_flags sync_flags;
 	bool new_changed, cur_changed, full_rescan = FALSE;
 	int ret;
 
@@ -1412,7 +1413,8 @@ static int maildir_sync_context(struct m
 	*/
 
 	ctx->partial = !cur_changed;
-	ret = maildir_uidlist_sync_init(ctx->mbox->uidlist, ctx->partial,
+	sync_flags = ctx->partial ? MAILDIR_UIDLIST_SYNC_PARTIAL : 0;
+	ret = maildir_uidlist_sync_init(ctx->mbox->uidlist, sync_flags,
 					&ctx->uidlist_sync_ctx);
 	if (ret <= 0) {
 		/* failure / timeout. if forced is TRUE, we could still go
diff -r 78fd6c834a29 -r b63f48fbeb2a src/lib-storage/index/maildir/maildir-uidlist.c
--- a/src/lib-storage/index/maildir/maildir-uidlist.c	Wed Nov 28 17:46:37 2007 +0200
+++ b/src/lib-storage/index/maildir/maildir-uidlist.c	Sat Dec 01 09:25:39 2007 +0200
@@ -996,10 +996,8 @@ static void maildir_uidlist_assign_uids(
 	size /= sizeof(*rec_p);
 
 	/* sort new files and assign UIDs for them */
-	if ((ctx->sync_flags & MAILDIR_UIDLIST_SYNC_ORDERED) == 0) {
-		qsort(rec_p + first_new_pos, size - first_new_pos,
-		      sizeof(*rec_p), maildir_time_cmp);
-	}
+	qsort(rec_p + first_new_pos, size - first_new_pos,
+	      sizeof(*rec_p), maildir_time_cmp);
 	for (dest = first_new_pos; dest < size; dest++) {
 		i_assert(rec_p[dest]->uid == (uint32_t)-1);
 		rec_p[dest]->uid = ctx->uidlist->next_uid++;
diff -r 78fd6c834a29 -r b63f48fbeb2a src/lib-storage/index/maildir/maildir-uidlist.h
--- a/src/lib-storage/index/maildir/maildir-uidlist.h	Wed Nov 28 17:46:37 2007 +0200
+++ b/src/lib-storage/index/maildir/maildir-uidlist.h	Sat Dec 01 09:25:39 2007 +0200
@@ -6,8 +6,7 @@ struct maildir_uidlist_sync_ctx;
 struct maildir_uidlist_sync_ctx;
 
 enum maildir_uidlist_sync_flags {
-	MAILDIR_UIDLIST_SYNC_PARTIAL	= 0x01,
-	MAILDIR_UIDLIST_SYNC_ORDERED	= 0x02
+	MAILDIR_UIDLIST_SYNC_PARTIAL	= 0x01
 };
 
 enum maildir_uidlist_rec_flag {


More information about the dovecot-cvs mailing list