changeset 7075:c8507f755f0b HEAD

Don't trigger cache compression based on fields with a forced decision.
author Timo Sirainen <tss@iki.fi>
date Sun, 30 Dec 2007 00:25:36 +0200
parents 0b2955fc57f1
children 3cb00348ed06
files src/lib-index/mail-cache-fields.c
diffstat 1 files changed, 4 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-index/mail-cache-fields.c	Sun Dec 30 00:03:59 2007 +0200
+++ b/src/lib-index/mail-cache-fields.c	Sun Dec 30 00:25:36 2007 +0200
@@ -257,6 +257,7 @@
 	const char *p, *names, *end;
 	void *orig_key, *orig_value;
 	unsigned int fidx, new_fields_count;
+	enum mail_cache_decision_type dec;
 	time_t max_drop_time;
 	uint32_t offset, i;
 
@@ -367,10 +368,11 @@
 		if (last_used[i] > cache->fields[fidx].last_used)
 			cache->fields[fidx].last_used = last_used[i];
 
+		dec = cache->fields[fidx].field.decision;
 		if ((time_t)cache->fields[fidx].last_used < max_drop_time &&
 		    cache->fields[fidx].last_used != 0 &&
-		    (cache->fields[fidx].field.decision &
-		     ~MAIL_CACHE_DECISION_FORCED) != MAIL_CACHE_DECISION_NO) {
+		    (dec & MAIL_CACHE_DECISION_FORCED) == 0 &&
+		    dec != MAIL_CACHE_DECISION_NO) {
 			/* time to drop this field. don't bother dropping
 			   fields that have never been used. */
 			cache->need_compress_file_seq = cache->hdr->file_seq;