diff src/lib-imap/imap-message-cache.c @ 22:a946ce1f09b7 HEAD

mbox fixes, not fully working yet but almost :)
author Timo Sirainen <tss@iki.fi>
date Sat, 24 Aug 2002 05:04:45 +0300
parents 82b7de533f98
children d493b9cc265e
line wrap: on
line diff
--- a/src/lib-imap/imap-message-cache.c	Fri Aug 23 19:21:36 2002 +0300
+++ b/src/lib-imap/imap-message-cache.c	Sat Aug 24 05:04:45 2002 +0300
@@ -45,7 +45,7 @@
 
 	CachedMessage *open_msg;
 	IOBuffer *open_inbuf;
-	size_t open_size, open_virtual_size;
+	off_t open_virtual_size;
 
 	IOBuffer *(*inbuf_rewind)(IOBuffer *inbuf, void *context);
 	void *context;
@@ -292,8 +292,14 @@
 			message_get_header_size(cache->open_inbuf,
 						msg->hdr_size);
 
+			i_assert((off_t)msg->hdr_size->physical_size <
+				 cache->open_inbuf->size);
+			i_assert((off_t)msg->hdr_size->virtual_size <
+				 cache->open_virtual_size);
+
 			msg->body_size->lines = 0;
-			msg->body_size->physical_size = cache->open_size -
+			msg->body_size->physical_size =
+				cache->open_inbuf->size -
 				msg->hdr_size->physical_size;
 			msg->body_size->virtual_size =
 				cache->open_virtual_size -
@@ -320,8 +326,8 @@
 }
 
 void imap_msgcache_message(ImapMessageCache *cache, unsigned int uid,
-			   ImapCacheField fields, size_t virtual_size,
-			   size_t pv_headers_size, size_t pv_body_size,
+			   ImapCacheField fields, off_t virtual_size,
+			   off_t pv_headers_size, off_t pv_body_size,
 			   IOBuffer *inbuf,
 			   IOBuffer *(*inbuf_rewind)(IOBuffer *inbuf,
 						     void *context),
@@ -335,8 +341,6 @@
 
 		cache->open_msg = msg;
 		cache->open_inbuf = inbuf;
-		cache->open_size = cache->open_inbuf->stop_offset -
-			cache->open_inbuf->offset;
 		cache->open_virtual_size = virtual_size;
 
 		cache->inbuf_rewind = inbuf_rewind;
@@ -369,7 +373,7 @@
 	}
 
 	cache->open_msg = NULL;
-	cache->open_size = cache->open_virtual_size = 0;
+	cache->open_virtual_size = 0;
 }
 
 void imap_msgcache_set(ImapMessageCache *cache, unsigned int uid,
@@ -538,7 +542,8 @@
 	if (virtual_skip == 0) {
 		if (max_virtual_size < 0 && msg->body_size == NULL) {
 			msg->body_size = p_new(msg->pool, MessageSize, 1);
-			msg->body_size->physical_size = cache->open_size -
+			msg->body_size->physical_size =
+				cache->open_inbuf->size -
 				msg->hdr_size->physical_size;
 			msg->body_size->virtual_size =
 				cache->open_virtual_size -