Mercurial > dovecot > core-2.2
changeset 6409:7f733ba453bf HEAD
Changed *_deinit() APIs to take ** pointer and set it to NULL.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 16 Sep 2007 11:07:42 +0300 |
parents | 17ec931b51d7 |
children | e4eb71ae8e96 |
files | src/lib-storage/index/maildir/maildir-keywords.c src/lib-storage/index/maildir/maildir-keywords.h src/lib-storage/index/maildir/maildir-save.c src/lib-storage/index/maildir/maildir-storage.c src/lib-storage/index/maildir/maildir-sync-index.c src/lib-storage/index/maildir/maildir-uidlist.c src/lib-storage/index/maildir/maildir-uidlist.h |
diffstat | 7 files changed, 26 insertions(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/maildir/maildir-keywords.c Sun Sep 16 11:02:48 2007 +0300 +++ b/src/lib-storage/index/maildir/maildir-keywords.c Sun Sep 16 11:07:42 2007 +0300 @@ -83,8 +83,11 @@ return mk; } -void maildir_keywords_deinit(struct maildir_keywords *mk) +void maildir_keywords_deinit(struct maildir_keywords **_mk) { + struct maildir_keywords *mk = *_mk; + + *_mk = NULL; hash_destroy(mk->hash); array_free(&mk->list); pool_unref(mk->pool); @@ -387,8 +390,12 @@ return ctx; } -void maildir_keywords_sync_deinit(struct maildir_keywords_sync_ctx *ctx) +void maildir_keywords_sync_deinit(struct maildir_keywords_sync_ctx **_ctx) { + struct maildir_keywords_sync_ctx *ctx = *_ctx; + + *_ctx = NULL; + t_push(); (void)maildir_keywords_commit(ctx->mk); t_pop();
--- a/src/lib-storage/index/maildir/maildir-keywords.h Sun Sep 16 11:02:48 2007 +0300 +++ b/src/lib-storage/index/maildir/maildir-keywords.h Sun Sep 16 11:07:42 2007 +0300 @@ -7,7 +7,7 @@ struct maildir_keywords_sync_ctx; struct maildir_keywords *maildir_keywords_init(struct maildir_mailbox *mbox); -void maildir_keywords_deinit(struct maildir_keywords *mk); +void maildir_keywords_deinit(struct maildir_keywords **mk); /* Initialize a read-only maildir_keywords instance. Mailbox needs to contain the dovecot-keywords file, but otherwise it doesn't have to be in maildir @@ -18,7 +18,7 @@ struct maildir_keywords_sync_ctx * maildir_keywords_sync_init(struct maildir_keywords *mk, struct mail_index *index); -void maildir_keywords_sync_deinit(struct maildir_keywords_sync_ctx *ctx); +void maildir_keywords_sync_deinit(struct maildir_keywords_sync_ctx **ctx); /* Returns keyword index. */ unsigned int maildir_keywords_char_idx(struct maildir_keywords_sync_ctx *ctx,
--- a/src/lib-storage/index/maildir/maildir-save.c Sun Sep 16 11:02:48 2007 +0300 +++ b/src/lib-storage/index/maildir/maildir-save.c Sun Sep 16 11:07:42 2007 +0300 @@ -689,9 +689,7 @@ Dovecot instances haven't yet seen the files. */ maildir_transaction_unlink_copied_files(ctx, mf); - maildir_keywords_sync_deinit(ctx->keywords_sync_ctx); - ctx->keywords_sync_ctx = NULL; - + maildir_keywords_sync_deinit(&ctx->keywords_sync_ctx); /* returning failure finishes the save_context */ maildir_transaction_save_rollback(ctx); }
--- a/src/lib-storage/index/maildir/maildir-storage.c Sun Sep 16 11:02:48 2007 +0300 +++ b/src/lib-storage/index/maildir/maildir-storage.c Sun Sep 16 11:07:42 2007 +0300 @@ -853,8 +853,8 @@ } if (mbox->keywords != NULL) - maildir_keywords_deinit(mbox->keywords); - maildir_uidlist_deinit(mbox->uidlist); + maildir_keywords_deinit(&mbox->keywords); + maildir_uidlist_deinit(&mbox->uidlist); return index_storage_mailbox_close(box); }
--- a/src/lib-storage/index/maildir/maildir-sync-index.c Sun Sep 16 11:02:48 2007 +0300 +++ b/src/lib-storage/index/maildir/maildir-sync-index.c Sun Sep 16 11:07:42 2007 +0300 @@ -211,9 +211,7 @@ mbox->syncing_commit = FALSE; } - maildir_keywords_sync_deinit(ctx->keywords_sync_ctx); - ctx->keywords_sync_ctx = NULL; - + maildir_keywords_sync_deinit(&ctx->keywords_sync_ctx); index_sync_changes_deinit(&ctx->sync_changes); i_free(ctx); return ret; @@ -423,7 +421,7 @@ mail_index_keywords_free(&kw); } } - maildir_uidlist_iter_deinit(iter); + maildir_uidlist_iter_deinit(&iter); mbox->syncing_commit = FALSE; if (ctx->uidlist_sync_ctx != NULL) {
--- a/src/lib-storage/index/maildir/maildir-uidlist.c Sun Sep 16 11:02:48 2007 +0300 +++ b/src/lib-storage/index/maildir/maildir-uidlist.c Sun Sep 16 11:07:42 2007 +0300 @@ -230,10 +230,13 @@ uidlist->last_read_offset = 0; } -void maildir_uidlist_deinit(struct maildir_uidlist *uidlist) +void maildir_uidlist_deinit(struct maildir_uidlist **_uidlist) { + struct maildir_uidlist *uidlist = *_uidlist; + i_assert(!UIDLIST_IS_LOCKED(uidlist)); + *_uidlist = NULL; maildir_uidlist_close(uidlist); hash_destroy(uidlist->files); @@ -841,7 +844,7 @@ str_printfa(str, " :%s\n", rec->filename); o_stream_send(output, str_data(str), str_len(str)); } - maildir_uidlist_iter_deinit(iter); + maildir_uidlist_iter_deinit(&iter); o_stream_flush(output); ret = output->stream_errno == 0 ? 0 : -1; @@ -1383,7 +1386,8 @@ return TRUE; } -void maildir_uidlist_iter_deinit(struct maildir_uidlist_iter_ctx *ctx) +void maildir_uidlist_iter_deinit(struct maildir_uidlist_iter_ctx **_ctx) { - i_free(ctx); + i_free(*_ctx); + *_ctx = NULL; }
--- a/src/lib-storage/index/maildir/maildir-uidlist.h Sun Sep 16 11:02:48 2007 +0300 +++ b/src/lib-storage/index/maildir/maildir-uidlist.h Sun Sep 16 11:07:42 2007 +0300 @@ -40,7 +40,7 @@ bool maildir_uidlist_is_locked(struct maildir_uidlist *uidlist); struct maildir_uidlist *maildir_uidlist_init(struct maildir_mailbox *mbox); -void maildir_uidlist_deinit(struct maildir_uidlist *uidlist); +void maildir_uidlist_deinit(struct maildir_uidlist **uidlist); /* Returns -1 if error, 0 if file is broken or lost, 1 if ok. */ int maildir_uidlist_refresh(struct maildir_uidlist *uidlist); @@ -104,6 +104,6 @@ uint32_t *uid_r, enum maildir_uidlist_rec_flag *flags_r, const char **filename_r); -void maildir_uidlist_iter_deinit(struct maildir_uidlist_iter_ctx *ctx); +void maildir_uidlist_iter_deinit(struct maildir_uidlist_iter_ctx **ctx); #endif