changeset 6324:1b0db9d04b2e HEAD

Parse keywords from header immediately when mapping the index file.
author Timo Sirainen <tss@iki.fi>
date Mon, 27 Aug 2007 18:28:53 +0300
parents 4a6dd4e894b4
children 3d48109409bf
files src/lib-index/mail-index-map.c src/lib-index/mail-index.c
diffstat 2 files changed, 9 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-index/mail-index-map.c	Mon Aug 27 18:28:30 2007 +0300
+++ b/src/lib-index/mail-index-map.c	Mon Aug 27 18:28:53 2007 +0300
@@ -681,10 +681,17 @@
 	if (ret > 0) {
 		/* make sure the header is ok before using this mapping */
 		ret = mail_index_check_header(new_map);
-		if (ret >= 0)
+		if (ret >= 0) {
 			ret = mail_index_parse_extensions(new_map);
-		if (ret++ == 0)
+			if (ret > 0) {
+				if (mail_index_map_parse_keywords(new_map) < 0)
+					ret = -1;
+			}
+		}
+		if (ret == 0)
 			index->fsck = TRUE;
+		else if (ret < 0)
+			ret = 0;
 	}
 	if (ret <= 0) {
 		mail_index_unmap(&new_map);
--- a/src/lib-index/mail-index.c	Mon Aug 27 18:28:30 2007 +0300
+++ b/src/lib-index/mail-index.c	Mon Aug 27 18:28:53 2007 +0300
@@ -322,10 +322,6 @@
 
 const ARRAY_TYPE(keywords) *mail_index_get_keywords(struct mail_index *index)
 {
-	/* Make sure all the keywords are in index->keywords. It's quick to do
-	   if nothing has changed. */
-	(void)mail_index_map_parse_keywords(index->map);
-
 	return &index->keywords;
 }