]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: convert dbox-multi to use container_of
authorJosef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
Fri, 1 Sep 2017 12:10:52 +0000 (15:10 +0300)
committerAki Tuomi <aki.tuomi@dovecot.fi>
Thu, 7 Sep 2017 07:43:55 +0000 (10:43 +0300)
src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c
src/lib-storage/index/dbox-multi/mdbox-mail.c
src/lib-storage/index/dbox-multi/mdbox-purge.c
src/lib-storage/index/dbox-multi/mdbox-save.c
src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c
src/lib-storage/index/dbox-multi/mdbox-storage.c
src/lib-storage/index/dbox-multi/mdbox-storage.h
src/lib-storage/index/dbox-multi/mdbox-sync.c

index 0db9d04a800934b78b22418ab1027e97c80bae97..4732df8edc919a49e73fc5e4e76d08cfceeb6de3 100644 (file)
@@ -55,7 +55,7 @@ mdbox_deleted_mailbox_alloc(struct mail_storage *storage,
 
        index_storage_mailbox_alloc(&mbox->box, vname, flags, MAIL_INDEX_PREFIX);
 
-       mbox->storage = (struct mdbox_storage *)storage;
+       mbox->storage = MDBOX_STORAGE(storage);
        return &mbox->box;
 }
 
@@ -64,7 +64,7 @@ mdbox_deleted_mailbox_create_indexes(struct mailbox *box,
                                     const struct mailbox_update *update,
                                     struct mail_index_transaction *trans)
 {
-       struct mdbox_mailbox *mbox = (struct mdbox_mailbox *)box;
+       struct mdbox_mailbox *mbox = MDBOX_MAILBOX(box);
        struct mail_index_transaction *new_trans = NULL;
        uint32_t uid_validity = ioloop_time;
        uint32_t uid_next = 1;
@@ -226,7 +226,7 @@ static struct mailbox_sync_context *
 mdbox_deleted_storage_sync_init(struct mailbox *box,
                                enum mailbox_sync_flags flags)
 {
-       struct mdbox_mailbox *mbox = (struct mdbox_mailbox *)box;
+       struct mdbox_mailbox *mbox = MDBOX_MAILBOX(box);
        enum mdbox_sync_flags mdbox_sync_flags = 0;
        int ret = 0;
 
index b44f660cd795bc990dd5683c0e1b9404e12596b7..1a13b41f8518566e543335f1e3f1ac7297dcf57f 100644 (file)
@@ -57,7 +57,7 @@ int mdbox_mail_lookup(struct mdbox_mailbox *mbox, struct mail_index_view *view,
 static void dbox_mail_set_expunged(struct dbox_mail *mail, uint32_t map_uid)
 {
        struct mail *_mail = &mail->imail.mail.mail;
-       struct mdbox_mailbox *mbox = (struct mdbox_mailbox *)_mail->box;
+       struct mdbox_mailbox *mbox = MDBOX_MAILBOX(_mail->box);
 
        mail_index_refresh(_mail->box->index);
        if (mail_index_is_expunged(_mail->transaction->view, _mail->seq)) {
@@ -73,8 +73,7 @@ static void dbox_mail_set_expunged(struct dbox_mail *mail, uint32_t map_uid)
 
 static int dbox_mail_open_init(struct dbox_mail *mail, uint32_t map_uid)
 {
-       struct mdbox_mailbox *mbox =
-               (struct mdbox_mailbox *)mail->imail.mail.mail.box;
+       struct mdbox_mailbox *mbox = MDBOX_MAILBOX(mail->imail.mail.mail.box);
        uint32_t file_id;
        int ret;
 
@@ -98,7 +97,7 @@ int mdbox_mail_open(struct dbox_mail *mail, uoff_t *offset_r,
                    struct dbox_file **file_r)
 {
        struct mail *_mail = &mail->imail.mail.mail;
-       struct mdbox_mailbox *mbox = (struct mdbox_mailbox *)_mail->box;
+       struct mdbox_mailbox *mbox = MDBOX_MAILBOX(_mail->box);
        uint32_t prev_file_id = 0, map_uid = 0;
        bool deleted;
 
@@ -152,8 +151,7 @@ int mdbox_mail_open(struct dbox_mail *mail, uoff_t *offset_r,
 
 static int mdbox_mail_get_save_date(struct mail *mail, time_t *date_r)
 {
-       struct mdbox_mailbox *mbox =
-               (struct mdbox_mailbox *)mail->transaction->box;
+       struct mdbox_mailbox *mbox = MDBOX_MAILBOX(mail->transaction->box);
        const struct mdbox_mail_index_record *dbox_rec;
        const void *data;
 
@@ -174,8 +172,7 @@ mdbox_mail_get_special(struct mail *_mail, enum mail_fetch_field field,
                       const char **value_r)
 {
        struct dbox_mail *mail = DBOX_MAIL(_mail);
-       struct mdbox_mailbox *mbox =
-               (struct mdbox_mailbox *)_mail->transaction->box;
+       struct mdbox_mailbox *mbox = MDBOX_MAILBOX(_mail->transaction->box);
        struct mdbox_map_mail_index_record rec;
        uint32_t map_uid;
        uint16_t refcount;
index d8e5cbb851e32710327511ef9f7229ba006c784d..1dd4244b76b140ce50146f459cf99bed6a055c9c 100644 (file)
@@ -439,7 +439,7 @@ mdbox_file_purge(struct mdbox_purge_context *ctx, struct dbox_file *file,
 
 void mdbox_purge_alt_flag_change(struct mail *mail, bool move_to_alt)
 {
-       struct mdbox_mailbox *mbox = (struct mdbox_mailbox *)mail->box;
+       struct mdbox_mailbox *mbox = MDBOX_MAILBOX(mail->box);
        ARRAY_TYPE(uint32_t) *dest;
        uint32_t map_uid;
 
index ddaf8bddcebf278dd85001f45d8131e4416c50b6..f5ba8699417f56a2dd5ab302b1d673277abddd23 100644 (file)
@@ -44,12 +44,13 @@ struct mdbox_save_context {
        ARRAY(struct dbox_save_mail) mails;
 };
 
+#define MDBOX_SAVECTX(s)       container_of(DBOX_SAVECTX(s), struct mdbox_save_context, ctx)
+
 static struct dbox_file *
 mdbox_copy_file_get_file(struct mailbox_transaction_context *t,
                         uint32_t seq, uoff_t *offset_r)
 {
-       struct mdbox_save_context *ctx =
-               (struct mdbox_save_context *)t->save_ctx;
+       struct mdbox_save_context *ctx = MDBOX_SAVECTX(t->save_ctx);
        const struct mdbox_mail_index_record *rec;
        const void *data;
        uint32_t file_id;
@@ -68,8 +69,7 @@ struct dbox_file *
 mdbox_save_file_get_file(struct mailbox_transaction_context *t,
                         uint32_t seq, uoff_t *offset_r)
 {
-       struct mdbox_save_context *ctx =
-               (struct mdbox_save_context *)t->save_ctx;
+       struct mdbox_save_context *ctx = MDBOX_SAVECTX(t->save_ctx);
        const struct dbox_save_mail *mails, *mail;
        unsigned int count;
 
@@ -98,9 +98,8 @@ mdbox_save_file_get_file(struct mailbox_transaction_context *t,
 struct mail_save_context *
 mdbox_save_alloc(struct mailbox_transaction_context *t)
 {
-       struct mdbox_mailbox *mbox = (struct mdbox_mailbox *)t->box;
-       struct mdbox_save_context *ctx =
-               (struct mdbox_save_context *)t->save_ctx;
+       struct mdbox_mailbox *mbox = MDBOX_MAILBOX(t->box);
+       struct mdbox_save_context *ctx = MDBOX_SAVECTX(t->save_ctx);
 
        i_assert((t->flags & MAILBOX_TRANSACTION_FLAG_EXTERNAL) != 0);
 
@@ -127,7 +126,7 @@ mdbox_save_alloc(struct mailbox_transaction_context *t)
 
 int mdbox_save_begin(struct mail_save_context *_ctx, struct istream *input)
 {
-       struct mdbox_save_context *ctx = (struct mdbox_save_context *)_ctx;
+       struct mdbox_save_context *ctx = MDBOX_SAVECTX(_ctx);
        struct dbox_save_mail *save_mail;
        uoff_t mail_size, append_offset;
 
@@ -277,7 +276,7 @@ mdbox_save_set_map_uids(struct mdbox_save_context *ctx,
 
 int mdbox_transaction_save_commit_pre(struct mail_save_context *_ctx)
 {
-       struct mdbox_save_context *ctx = (struct mdbox_save_context *)_ctx;
+       struct mdbox_save_context *ctx = MDBOX_SAVECTX(_ctx);
        struct mailbox_transaction_context *_t = _ctx->transaction;
        const struct mail_index_header *hdr;
        uint32_t first_map_uid, last_map_uid;
@@ -367,7 +366,7 @@ int mdbox_transaction_save_commit_pre(struct mail_save_context *_ctx)
 void mdbox_transaction_save_commit_post(struct mail_save_context *_ctx,
                                        struct mail_index_transaction_commit_result *result)
 {
-       struct mdbox_save_context *ctx = (struct mdbox_save_context *)_ctx;
+       struct mdbox_save_context *ctx = MDBOX_SAVECTX(_ctx);
        struct mail_storage *storage = _ctx->transaction->box->storage;
 
        _ctx->transaction = NULL; /* transaction is already freed */
@@ -404,7 +403,7 @@ void mdbox_transaction_save_commit_post(struct mail_save_context *_ctx,
 
 void mdbox_transaction_save_rollback(struct mail_save_context *_ctx)
 {
-       struct mdbox_save_context *ctx = (struct mdbox_save_context *)_ctx;
+       struct mdbox_save_context *ctx = MDBOX_SAVECTX(_ctx);
 
        if (!ctx->ctx.finished)
                mdbox_save_cancel(&ctx->ctx.ctx);
@@ -426,7 +425,7 @@ void mdbox_transaction_save_rollback(struct mail_save_context *_ctx)
 
 int mdbox_copy(struct mail_save_context *_ctx, struct mail *mail)
 {
-       struct mdbox_save_context *ctx = (struct mdbox_save_context *)_ctx;
+       struct mdbox_save_context *ctx = MDBOX_SAVECTX(_ctx);
        struct dbox_save_mail *save_mail;
        struct mdbox_mailbox *src_mbox;
        struct mdbox_mail_index_record rec;
@@ -438,7 +437,7 @@ int mdbox_copy(struct mail_save_context *_ctx, struct mail *mail)
        if (mail->box->storage != _ctx->transaction->box->storage ||
            _ctx->transaction->box->disable_reflink_copy_to)
                return mail_storage_copy(_ctx, mail);
-       src_mbox = (struct mdbox_mailbox *)mail->box;
+       src_mbox = MDBOX_MAILBOX(mail->box);
 
        i_zero(&rec);
        rec.save_date = ioloop_time;
index 746cb604bd3c74189a1ee2ec69b79db0872fc888..e9d8a4a7507e7ecc8996c59dbe3b40a896e47fb9 100644 (file)
@@ -567,7 +567,7 @@ rebuild_mailbox(struct mdbox_storage_rebuild_context *ctx,
                /* non-temporary error, ignore */
                return 0;
        }
-       mbox = (struct mdbox_mailbox *)box;
+       mbox = MDBOX_MAILBOX(box);
 
        ret = mail_index_sync_begin(box->index, &sync_ctx, &view, &trans,
                                    MAIL_INDEX_SYNC_FLAG_AVOID_FLAG_UPDATES);
@@ -731,7 +731,7 @@ static int rebuild_restore_msg(struct mdbox_storage_rebuild_context *ctx,
                        return -1;
                }
        }
-       mbox = (struct mdbox_mailbox *)box;
+       mbox = MDBOX_MAILBOX(box);
 
        /* switch the mailbox cache if necessary */
        if (box != ctx->prev_msg.box && ctx->prev_msg.box != NULL) {
index 7260c744c20e9d9cf44f2feefc779138a7b70f7f..ec90f8940d0db6cd7120ef1c7d727d611c56d1ec 100644 (file)
@@ -37,7 +37,7 @@ static struct mail_storage *mdbox_storage_alloc(void)
 int mdbox_storage_create(struct mail_storage *_storage,
                         struct mail_namespace *ns, const char **error_r)
 {
-       struct mdbox_storage *storage = (struct mdbox_storage *)_storage;
+       struct mdbox_storage *storage = MDBOX_STORAGE(_storage);
        const char *dir;
 
        storage->set = mail_namespace_get_driver_settings(ns, _storage);
@@ -67,7 +67,7 @@ int mdbox_storage_create(struct mail_storage *_storage,
 
 void mdbox_storage_destroy(struct mail_storage *_storage)
 {
-       struct mdbox_storage *storage = (struct mdbox_storage *)_storage;
+       struct mdbox_storage *storage = MDBOX_STORAGE(_storage);
 
        mdbox_files_free(storage);
        mdbox_map_deinit(&storage->map);
@@ -163,13 +163,13 @@ mdbox_mailbox_alloc(struct mail_storage *storage, struct mailbox_list *list,
        ibox->index_flags |= MAIL_INDEX_OPEN_FLAG_KEEP_BACKUPS |
                MAIL_INDEX_OPEN_FLAG_NEVER_IN_MEMORY;
 
-       mbox->storage = (struct mdbox_storage *)storage;
+       mbox->storage = MDBOX_STORAGE(storage);
        return &mbox->box;
 }
 
 int mdbox_mailbox_open(struct mailbox *box)
 {
-       struct mdbox_mailbox *mbox = (struct mdbox_mailbox *)box;
+       struct mdbox_mailbox *mbox = MDBOX_MAILBOX(box);
        time_t path_ctime;
 
        if (dbox_mailbox_check_existence(box, &path_ctime) < 0)
@@ -192,7 +192,7 @@ int mdbox_mailbox_open(struct mailbox *box)
 
 static void mdbox_mailbox_close(struct mailbox *box)
 {
-       struct mdbox_storage *mstorage = (struct mdbox_storage *)box->storage;
+       struct mdbox_storage *mstorage = MDBOX_STORAGE(box->storage);
 
        if (mstorage->corrupted && !mstorage->rebuilding_storage)
                (void)mdbox_storage_rebuild(mstorage);
@@ -334,7 +334,7 @@ int mdbox_mailbox_create_indexes(struct mailbox *box,
                                 const struct mailbox_update *update,
                                 struct mail_index_transaction *trans)
 {
-       struct mdbox_mailbox *mbox = (struct mdbox_mailbox *)box;
+       struct mdbox_mailbox *mbox = MDBOX_MAILBOX(box);
        int ret;
 
        mbox->creating = TRUE;
@@ -368,14 +368,14 @@ mdbox_get_attachment_path_suffix(struct dbox_file *file ATTR_UNUSED)
 
 void mdbox_set_mailbox_corrupted(struct mailbox *box)
 {
-       struct mdbox_storage *mstorage = (struct mdbox_storage *)box->storage;
+       struct mdbox_storage *mstorage = MDBOX_STORAGE(box->storage);
 
        mdbox_storage_set_corrupted(mstorage);
 }
 
 void mdbox_set_file_corrupted(struct dbox_file *file)
 {
-       struct mdbox_storage *mstorage = (struct mdbox_storage *)file->storage;
+       struct mdbox_storage *mstorage = MDBOX_DBOX_STORAGE(file->storage);
 
        mdbox_storage_set_corrupted(mstorage);
 }
@@ -420,7 +420,7 @@ mdbox_mailbox_get_metadata(struct mailbox *box,
                           enum mailbox_metadata_items items,
                           struct mailbox_metadata *metadata_r)
 {
-       struct mdbox_mailbox *mbox = (struct mdbox_mailbox *)box;
+       struct mdbox_mailbox *mbox = MDBOX_MAILBOX(box);
 
        if (index_mailbox_get_metadata(box, items, metadata_r) < 0)
                return -1;
index b89b620a3f06c9b9250d174746c59f3c886e55e4..ea995328033ebb53111faa7d1d4f6c80fb02392c 100644 (file)
@@ -63,6 +63,10 @@ struct mdbox_mailbox {
        bool creating:1;
 };
 
+#define MDBOX_DBOX_STORAGE(s)  container_of(s, struct mdbox_storage, storage)
+#define MDBOX_STORAGE(s)       MDBOX_DBOX_STORAGE(DBOX_STORAGE(s))
+#define MDBOX_MAILBOX(s)       container_of(s, struct mdbox_mailbox, box)
+
 extern struct dbox_storage_vfuncs mdbox_dbox_storage_vfuncs;
 extern struct mail_vfuncs mdbox_mail_vfuncs;
 
index 583d8f3833ecd06a0c33a7823518d680f386f433..27ceb0add24508ad2a7cd12ba65f141c4d407bf7 100644 (file)
@@ -356,7 +356,7 @@ int mdbox_sync(struct mdbox_mailbox *mbox, enum mdbox_sync_flags flags)
 struct mailbox_sync_context *
 mdbox_storage_sync_init(struct mailbox *box, enum mailbox_sync_flags flags)
 {
-       struct mdbox_mailbox *mbox = (struct mdbox_mailbox *)box;
+       struct mdbox_mailbox *mbox = MDBOX_MAILBOX(box);
        enum mdbox_sync_flags mdbox_sync_flags = 0;
        int ret = 0;