# HG changeset patch # User Timo Sirainen # Date 1127556723 -10800 # Node ID 9d2345ba4e30a4ce00332831d5781c958f0c4e95 # Parent 36e1899b109b9509b7a412f4b5c1eac4f5380b28 Resizing header left header offsets broken and usually assert-crashed while doing it. diff -r 36e1899b109b -r 9d2345ba4e30 src/lib-index/mail-index-sync-ext.c --- 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) {