dovecot-2.0: virtual: Small code cleanup.

dovecot at dovecot.org dovecot at dovecot.org
Mon Apr 5 09:18:17 EEST 2010


details:   http://hg.dovecot.org/dovecot-2.0/rev/d61ffd81124c
changeset: 11071:d61ffd81124c
user:      Timo Sirainen <tss at iki.fi>
date:      Mon Apr 05 09:13:55 2010 +0300
description:
virtual: Small code cleanup.

diffstat:

 src/plugins/virtual/virtual-sync.c |  19 +++++++++++++++----
 1 files changed, 15 insertions(+), 4 deletions(-)

diffs (57 lines):

diff -r bd2ac7e2fc40 -r d61ffd81124c src/plugins/virtual/virtual-sync.c
--- a/src/plugins/virtual/virtual-sync.c	Mon Apr 05 08:59:04 2010 +0300
+++ b/src/plugins/virtual/virtual-sync.c	Mon Apr 05 09:13:55 2010 +0300
@@ -1071,21 +1071,22 @@
 {
 	uint32_t virtual_ext_id = ctx->mbox->virtual_ext_id;
 	struct virtual_sync_mail *vmails;
-	struct virtual_backend_box *bbox, *const *bboxes;
+	struct virtual_backend_box *bbox;
 	struct virtual_backend_uidmap *uidmap = NULL;
 	struct virtual_add_record add_rec;
 	const struct virtual_mail_index_record *vrec;
 	const void *data;
 	bool expunged;
-	uint32_t i, vseq, vuid, messages, count;
+	uint32_t i, vseq, vuid, messages;
 	unsigned int j = 0, uidmap_count = 0;
 
 	messages = mail_index_view_get_messages_count(ctx->sync_view);
+	if (messages == 0)
+		return;
 
 	/* sort the messages in current view by their backend mailbox and
 	   real UID */
-	vmails = messages == 0 ? NULL :
-		i_new(struct virtual_sync_mail, messages);
+	vmails = i_new(struct virtual_sync_mail, messages);
 	for (vseq = 1; vseq <= messages; vseq++) {
 		mail_index_lookup_ext(ctx->sync_view, vseq, virtual_ext_id,
 				      &data, &expunged);
@@ -1149,9 +1150,18 @@
 		add_rec.rec.real_uid = uidmap[j].real_uid;
 		array_append(&ctx->all_adds, &add_rec, 1);
 	}
+}
+
+static void virtual_sync_new_backend_boxes(struct virtual_sync_context *ctx)
+{
+	struct virtual_backend_box *const *bboxes;
+	struct virtual_add_record add_rec;
+	struct virtual_backend_uidmap *uidmap;
+	unsigned int i, j, count, uidmap_count;
 
 	/* if there are any mailboxes we didn't yet sync, add new messages in
 	   them */
+	memset(&add_rec, 0, sizeof(add_rec));
 	bboxes = array_get(&ctx->mbox->backend_boxes, &count);
 	for (i = 0; i < count; i++) {
 		if (bboxes[i]->sync_seen)
@@ -1391,6 +1401,7 @@
 		   sync all flags */
 		ctx->mbox->uids_mapped = TRUE;
 		virtual_sync_backend_map_uids(ctx);
+		virtual_sync_new_backend_boxes(ctx);
 	}
 	virtual_sync_backend_add_new(ctx);
 	array_free(&ctx->all_adds);


More information about the dovecot-cvs mailing list