From: Timo Sirainen Date: Tue, 7 Feb 2023 23:25:47 +0000 (+0200) Subject: lib-storage: Don't keep mail_user.set_parser referenced X-Git-Tag: 2.4.0~2253 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5ff3080306917811142be4e84d22e37904e73aa4;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Don't keep mail_user.set_parser referenced It's always just a direct pointer to service_userr->set_parser, so the reference isn't needed. Also the following changes will change this to a non-reference counted "settings instance", which makes this change necessary. --- diff --git a/src/lib-storage/mail-user.c b/src/lib-storage/mail-user.c index 9add4c930f..b35e8be350 100644 --- a/src/lib-storage/mail-user.c +++ b/src/lib-storage/mail-user.c @@ -95,7 +95,6 @@ mail_user_alloc(struct mail_storage_service_user *service_user) mail_storage_service_user_ref(service_user); user->username = p_strdup(pool, username); user->set_parser = service_user_set_parser; - settings_parser_ref(user->set_parser); user->set = mail_storage_service_user_get_set(service_user); user->service = master_service_get_name(master_service); user->default_normalizer = uni_utf8_to_decomposed_titlecase; @@ -233,7 +232,6 @@ void mail_user_unref(struct mail_user **_user) user->v.deinit_pre(user); user->v.deinit(user); } T_END; - settings_parser_unref(&user->set_parser); master_service_settings_free(user->_mail_set); event_unref(&user->event); i_assert(user->refcount == 1); diff --git a/src/lib-storage/mail-user.h b/src/lib-storage/mail-user.h index cfa7ddf816..a34f0e6fe8 100644 --- a/src/lib-storage/mail-user.h +++ b/src/lib-storage/mail-user.h @@ -57,6 +57,7 @@ struct mail_user { This could be set by plugins that need to fail the initialization. */ const char *error; + /* Points to service_user->set_parser */ struct setting_parser_context *set_parser; const struct mail_user_settings *set; struct mail_storage_settings *_mail_set;