Mercurial > dovecot > original-hg > dovecot-1.2
comparison src/lib-storage/index/maildir/maildir-sync-index.c @ 9464:939edf3ed09b HEAD
maildir: Having a lot of keywords assert-crashed with "stack frame changed".
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Mon, 02 Nov 2009 17:54:17 -0500 |
parents | f2a6a99ff9ea |
children | 00cd9aacd03c |
comparison
equal
deleted
inserted
replaced
9463:0dc82e18530d | 9464:939edf3ed09b |
---|---|
419 hdr_next_uid = hdr->next_uid; | 419 hdr_next_uid = hdr->next_uid; |
420 | 420 |
421 time_before_sync = time(NULL); | 421 time_before_sync = time(NULL); |
422 mbox->syncing_commit = TRUE; | 422 mbox->syncing_commit = TRUE; |
423 seq = prev_uid = 0; first_recent_uid = I_MAX(hdr->first_recent_uid, 1); | 423 seq = prev_uid = 0; first_recent_uid = I_MAX(hdr->first_recent_uid, 1); |
424 t_array_init(&ctx->keywords, MAILDIR_MAX_KEYWORDS); | 424 i_array_init(&ctx->keywords, MAILDIR_MAX_KEYWORDS); |
425 t_array_init(&ctx->idx_keywords, MAILDIR_MAX_KEYWORDS); | 425 i_array_init(&ctx->idx_keywords, MAILDIR_MAX_KEYWORDS); |
426 iter = maildir_uidlist_iter_init(mbox->uidlist); | 426 iter = maildir_uidlist_iter_init(mbox->uidlist); |
427 while (maildir_uidlist_iter_next(iter, &uid, &uflags, &filename)) { | 427 while (maildir_uidlist_iter_next(iter, &uid, &uflags, &filename)) { |
428 maildir_filename_get_flags(ctx->keywords_sync_ctx, filename, | 428 maildir_filename_get_flags(ctx->keywords_sync_ctx, filename, |
429 &ctx->flags, &ctx->keywords); | 429 &ctx->flags, &ctx->keywords); |
430 | 430 |
597 if (hdr->first_recent_uid < first_recent_uid) { | 597 if (hdr->first_recent_uid < first_recent_uid) { |
598 mail_index_update_header(ctx->trans, | 598 mail_index_update_header(ctx->trans, |
599 offsetof(struct mail_index_header, first_recent_uid), | 599 offsetof(struct mail_index_header, first_recent_uid), |
600 &first_recent_uid, sizeof(first_recent_uid), FALSE); | 600 &first_recent_uid, sizeof(first_recent_uid), FALSE); |
601 } | 601 } |
602 array_free(&ctx->keywords); | |
603 array_free(&ctx->idx_keywords); | |
602 return ret < 0 ? -1 : (full_rescan ? 0 : 1); | 604 return ret < 0 ? -1 : (full_rescan ? 0 : 1); |
603 } | 605 } |
604 | 606 |
605 static unsigned int maildir_list_get_ext_id(struct maildir_storage *storage, | 607 static unsigned int maildir_list_get_ext_id(struct maildir_storage *storage, |
606 struct mail_index_view *view) | 608 struct mail_index_view *view) |