changeset 3604:9d2345ba4e30 HEAD

Resizing header left header offsets broken and usually assert-crashed while doing it.
author Timo Sirainen <tss@iki.fi>
date Sat, 24 Sep 2005 13:12:03 +0300
parents 36e1899b109b
children c533051d19cd
files src/lib-index/mail-index-sync-ext.c
diffstat 1 files changed, 3 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-index/mail-index-sync-ext.c	Sat Sep 24 13:10:56 2005 +0300
+++ b/src/lib-index/mail-index-sync-ext.c	Sat Sep 24 13:12:03 2005 +0300
@@ -330,13 +330,10 @@
 	if (new_size != old_size) {
 		/* move all hdr_offset of all extensions after this one */
 		unsigned i, count = array_count(&map->extensions);
+		ssize_t diff = (ssize_t)new_size - (ssize_t)old_size;
 
-		ext -= ext_id;
-		for (i = ext_id + 1; i < count; i++) {
-			i_assert(ext[i].hdr_offset > ext[i-1].hdr_offset);
-			ext[i].hdr_offset +=
-				(ssize_t)new_size - (ssize_t)old_size;
-		}
+		for (i = ext_id + 1; i < count; i++)
+			ext[i].hdr_offset += diff;
 	}
 
 	if (old_record_size != u->record_size) {