dovecot-2.0: lib-storage: Avoid wasting data stack usage.

dovecot at dovecot.org dovecot at dovecot.org
Thu Jun 4 22:29:08 EEST 2009


details:   http://hg.dovecot.org/dovecot-2.0/rev/0a1f989bc5ad
changeset: 9447:0a1f989bc5ad
user:      Timo Sirainen <tss at iki.fi>
date:      Thu Jun 04 15:28:46 2009 -0400
description:
lib-storage: Avoid wasting data stack usage.

diffstat:

1 file changed, 27 insertions(+), 10 deletions(-)
src/lib-storage/mail-storage-service.c |   37 +++++++++++++++++++++++---------

diffs (58 lines):

diff -r 563b17988ce1 -r 0a1f989bc5ad src/lib-storage/mail-storage-service.c
--- a/src/lib-storage/mail-storage-service.c	Thu Jun 04 15:27:26 2009 -0400
+++ b/src/lib-storage/mail-storage-service.c	Thu Jun 04 15:28:46 2009 -0400
@@ -459,11 +459,11 @@ mail_storage_service_init_log(struct mas
 	} 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 ma
 	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_ge
 
 void *mail_storage_service_get_settings(struct master_service *service)
 {
-	void **sets;
-
-	sets = master_service_settings_get_others(service);
-	return sets[1];
-}
+	void **sets, *set;
+
+	T_BEGIN {
+		sets = master_service_settings_get_others(service);
+		set = sets[1];
+	} T_END;
+	return set;
+}


More information about the dovecot-cvs mailing list