Mercurial > dovecot > core-2.2
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) {