]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imapc: Cleanup - change delayed_expunged_uids to seq_range.
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Wed, 23 Nov 2016 15:14:14 +0000 (17:14 +0200)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Wed, 23 Nov 2016 15:14:14 +0000 (17:14 +0200)
This simplifies the next commit.

src/lib-storage/index/imapc/imapc-mailbox.c
src/lib-storage/index/imapc/imapc-storage.h

index dce673df3dd6c50a2e3cde3413add2c858eaee66..2ed36caf10c48266470a31fbf31e615be20e97cf 100644 (file)
@@ -71,14 +71,17 @@ static int imapc_mailbox_commit_delayed_expunges(struct imapc_mailbox *mbox)
 {
        struct mail_index_view *view = imapc_mailbox_get_sync_view(mbox);
        struct mail_index_transaction *trans;
-       const uint32_t *uidp;
-       uint32_t lseq;
+       struct seq_range_iter iter;
+       unsigned int n;
+       uint32_t lseq, uid;
        int ret;
 
        trans = mail_index_transaction_begin(view,
                        MAIL_INDEX_TRANSACTION_FLAG_EXTERNAL);
-       array_foreach(&mbox->delayed_expunged_uids, uidp) {
-               if (mail_index_lookup_seq(view, *uidp, &lseq))
+
+       seq_range_array_iter_init(&iter, &mbox->delayed_expunged_uids); n = 0;
+       while (seq_range_array_iter_nth(&iter, n++, &uid)) {
+               if (mail_index_lookup_seq(view, uid, &lseq))
                        mail_index_expunge(trans, lseq);
        }
        array_clear(&mbox->delayed_expunged_uids);
@@ -483,7 +486,7 @@ static void imapc_untagged_expunge(const struct imapc_untagged_reply *reply,
                   quite a lot of trouble. so instead we'll just delay doing
                   this expunge until after the current transaction has been
                   committed. */
-               array_append(&mbox->delayed_expunged_uids, &uid, 1);
+               seq_range_array_add(&mbox->delayed_expunged_uids, uid);
        } else {
                /* already expunged by another session */
        }
index 921923bc2bafcf44e9984af24644993825a48235..685d488d410fcaa484617283c1dfac0d1ad90539 100644 (file)
@@ -109,7 +109,7 @@ struct imapc_mailbox {
        uint32_t highest_nonrecent_uid;
 
        ARRAY(uint64_t) rseq_modseqs;
-       ARRAY_TYPE(uint32_t) delayed_expunged_uids;
+       ARRAY_TYPE(seq_range) delayed_expunged_uids;
        uint32_t sync_uid_validity;
        uint32_t sync_uid_next;
        uint64_t sync_highestmodseq;