]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Avoid wasting data stack usage.
authorTimo Sirainen <tss@iki.fi>
Thu, 4 Jun 2009 19:28:46 +0000 (15:28 -0400)
committerTimo Sirainen <tss@iki.fi>
Thu, 4 Jun 2009 19:28:46 +0000 (15:28 -0400)
--HG--
branch : HEAD

src/lib-storage/mail-storage-service.c

index 66fb10756ef32c15580774409ffa9282526130f2..e676c5bb730ee8a1d829092d8a931733808d14ec 100644 (file)
@@ -459,11 +459,11 @@ mail_storage_service_init_log(struct master_service *service,
        } T_END;
 }
 
-struct mail_user *
-mail_storage_service_init_user(struct master_service *service,
-                              const struct mail_storage_service_input *_input,
-                              const struct setting_parser_info *set_roots[],
-                              enum mail_storage_service_flags flags)
+static struct mail_user *
+init_user_real(struct master_service *service,
+              const struct mail_storage_service_input *_input,
+              const struct setting_parser_info *set_roots[],
+              enum mail_storage_service_flags flags)
 {
        struct mail_storage_service_input input = *_input;
        const struct master_service_settings *set;
@@ -550,6 +550,20 @@ mail_storage_service_init_user(struct master_service *service,
        return mail_user;
 }
 
+struct mail_user *
+mail_storage_service_init_user(struct master_service *service,
+                              const struct mail_storage_service_input *_input,
+                              const struct setting_parser_info *set_roots[],
+                              enum mail_storage_service_flags flags)
+{
+       struct mail_user *user;
+
+       T_BEGIN {
+               user = init_user_real(service, _input, set_roots, flags);
+       } T_END;
+       return user;
+}
+
 void mail_storage_service_deinit_user(void)
 {
        module_dir_unload(&modules);
@@ -728,8 +742,11 @@ void *mail_storage_service_multi_user_get_set(struct mail_storage_service_multi_
 
 void *mail_storage_service_get_settings(struct master_service *service)
 {
-       void **sets;
+       void **sets, *set;
 
-       sets = master_service_settings_get_others(service);
-       return sets[1];
+       T_BEGIN {
+               sets = master_service_settings_get_others(service);
+               set = sets[1];
+       } T_END;
+       return set;
 }