changeset 6387:15defb570164 HEAD

If view is inconsistent, keep mail->seq valid anyway.
author Timo Sirainen <tss@iki.fi>
date Sat, 15 Sep 2007 13:07:46 +0300
parents 1d993d28e12f
children 78b9315ed5ff
files src/lib-storage/index/index-mail.c
diffstat 1 files changed, 7 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/index/index-mail.c	Sat Sep 15 13:07:01 2007 +0300
+++ b/src/lib-storage/index/index-mail.c	Sat Sep 15 13:07:46 2007 +0300
@@ -978,6 +978,9 @@
 	data->seq = seq;
 	data->flags = rec->flags & MAIL_FLAGS_NONRECENT;
 
+	mail->mail.mail.seq = seq;
+	mail->mail.mail.uid = rec->uid;
+
 	if (mail_index_view_is_inconsistent(mail->trans->trans_view)) {
 		mail_set_expunged(&mail->mail.mail);
 		return;
@@ -989,16 +992,12 @@
 		(void)index_mail_get_fixed_field(mail, MAIL_CACHE_FLAGS,
 						 &data->cache_flags,
 						 sizeof(data->cache_flags));
+		mail->mail.mail.has_nuls =
+			(data->cache_flags & MAIL_CACHE_FLAG_HAS_NULS) != 0;
+		mail->mail.mail.has_no_nuls =
+			(data->cache_flags & MAIL_CACHE_FLAG_HAS_NO_NULS) != 0;
 	}
 
-	/* set public fields */
-	mail->mail.mail.seq = seq;
-	mail->mail.mail.uid = rec->uid;
-	mail->mail.mail.has_nuls =
-		(data->cache_flags & MAIL_CACHE_FLAG_HAS_NULS) != 0;
-	mail->mail.mail.has_no_nuls =
-		(data->cache_flags & MAIL_CACHE_FLAG_HAS_NO_NULS) != 0;
-
 	/* see if wanted_fields can tell us if we need to read/parse
 	   header/body */
 	if ((mail->wanted_fields & MAIL_FETCH_MESSAGE_PARTS) != 0) {