From 9830e764ff6c7ae8686eed461db9e13e2434ba83 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Mon, 1 Sep 2008 15:30:40 +0300 Subject: [PATCH] Thread index bugfix. --HG-- branch : HEAD --- src/lib-storage/index/index-thread.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/lib-storage/index/index-thread.c b/src/lib-storage/index/index-thread.c index ca1368e672..83e51844c8 100644 --- a/src/lib-storage/index/index-thread.c +++ b/src/lib-storage/index/index-thread.c @@ -432,7 +432,15 @@ static void mail_thread_cache_update_adds(struct mail_thread_mailbox *tbox, should already be in msgid_map. */ msgid_map = array_get(tbox->msgid_map, &map_count); uids = array_get(added_uids, &uid_count); - i_assert(uid_count == 0 || msgid_map[j].uid <= uids[0].seq1); + if (uid_count == 0) + return; + + (void)bsearch_insert_pos(&uids[0].seq1, msgid_map, map_count, + sizeof(*msgid_map), msgid_map_cmp, &j); + i_assert(j < map_count); + while (j > 0 && msgid_map[j-1].uid == msgid_map[j].uid) + j--; + for (i = 0; i < uid_count; i++) { for (uid = uids[i].seq1; uid <= uids[i].seq2; uid++) { while (j < map_count && msgid_map[j].uid < uid) -- 2.47.3