changeset 383:652553a9f54c HEAD

minor speedups
author Timo Sirainen <tss@iki.fi>
date Tue, 08 Oct 2002 03:36:04 +0300
parents d1f925376da7
children 6b5814fd9e7d
files src/lib-index/mbox/mbox-index.c src/lib-index/mbox/mbox-rewrite.c
diffstat 2 files changed, 16 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-index/mbox/mbox-index.c	Mon Oct 07 18:18:59 2002 +0300
+++ b/src/lib-index/mbox/mbox-index.c	Tue Oct 08 03:36:04 2002 +0300
@@ -228,7 +228,7 @@
 
 	case 'C':
 	case 'c':
-		if (name_len == 14 &&
+		if (name_len == 14 && ctx->set_read_limit &&
 		    strncasecmp(name, "Content-Length", 14) == 0) {
 			/* manual parsing, so we can deal with uoff_t */
 			ctx->content_length = 0;
--- a/src/lib-index/mbox/mbox-rewrite.c	Mon Oct 07 18:18:59 2002 +0300
+++ b/src/lib-index/mbox/mbox-rewrite.c	Tue Oct 08 03:36:04 2002 +0300
@@ -454,17 +454,22 @@
 	failed = FALSE; seq = 1;
 	rec = index->lookup(index, 1);
 	while (rec != NULL) {
-		/* get offset to beginning of mail headers */
-		if (!mbox_mail_get_start_offset(index, rec, &offset)) {
-			/* fsck should have fixed it */
-			failed = TRUE;
-			break;
-		}
+		if (dirty_found || (rec->index_flags & INDEX_MAIL_FLAG_DIRTY)) {
+			/* get offset to beginning of mail headers */
+			if (!mbox_mail_get_start_offset(index, rec, &offset)) {
+				/* fsck should have fixed it */
+				failed = TRUE;
+				break;
+			}
 
-		if (offset + rec->header_size + rec->body_size > inbuf->size) {
-			index_set_corrupted(index, "Invalid message size");
-			failed = TRUE;
-			break;
+			if (offset + rec->header_size + rec->body_size > inbuf->size) {
+				index_set_corrupted(index,
+						    "Invalid message size");
+				failed = TRUE;
+				break;
+			}
+		} else {
+			offset = 0;
 		}
 
 		if (!dirty_found &&