dovecot: Use less space from data stack.

dovecot at dovecot.org dovecot at dovecot.org
Sun Dec 9 15:01:18 EET 2007


details:   http://hg.dovecot.org/dovecot/rev/f2c37fe48668
changeset: 6975:f2c37fe48668
user:      Timo Sirainen <tss at iki.fi>
date:      Sun Dec 09 15:01:14 2007 +0200
description:
Use less space from data stack.

diffstat:

2 files changed, 21 insertions(+), 13 deletions(-)
src/lib-storage/index/dbox/dbox-file.c |   22 +++++++++++++++-------
src/lib-storage/index/dbox/dbox-save.c |   12 ++++++------

diffs (106 lines):

diff -r ec6cc297dd82 -r f2c37fe48668 src/lib-storage/index/dbox/dbox-file.c
--- a/src/lib-storage/index/dbox/dbox-file.c	Sun Dec 09 14:15:56 2007 +0200
+++ b/src/lib-storage/index/dbox/dbox-file.c	Sun Dec 09 15:01:14 2007 +0200
@@ -37,10 +37,11 @@ static char *dbox_generate_tmp_filename(
 {
 	static unsigned int create_count = 0;
 
-	return i_strdup_printf("temp.%s.P%sQ%uM%s.%s",
-			       dec2str(ioloop_timeval.tv_sec), my_pid,
+	return i_strdup_printf("temp.%lu.P%sQ%uM%u.%s",
+			       (unsigned long)ioloop_timeval.tv_sec, my_pid,
 			       create_count++,
-			       dec2str(ioloop_timeval.tv_usec), my_hostname);
+			       (unsigned int)ioloop_timeval.tv_usec,
+			       my_hostname);
 }
 
 void dbox_file_set_syscall_error(struct dbox_file *file, const char *function)
@@ -419,7 +420,9 @@ static int dbox_file_open(struct dbox_fi
 	*deleted_r = FALSE;
 
 	if (file->fd == -1) {
-		ret = dbox_file_open_fd(file);
+		T_FRAME(
+			ret = dbox_file_open_fd(file);
+		);
 		if (ret <= 0) {
 			if (ret < 0)
 				return -1;
@@ -490,11 +493,16 @@ int dbox_file_open_or_create(struct dbox
 int dbox_file_open_or_create(struct dbox_file *file, bool read_header,
 			     bool *deleted_r)
 {
+	int ret;
+
 	*deleted_r = FALSE;
 
-	if (file->file_id == 0)
-		return dbox_file_create(file) < 0 ? -1 : 1;
-	else if (file->input != NULL)
+	if (file->file_id == 0) {
+		T_FRAME(
+			ret = dbox_file_create(file) < 0 ? -1 : 1;
+		);
+		return ret;
+	} else if (file->input != NULL)
 		return 1;
 	else
 		return dbox_file_open(file, read_header, deleted_r);
diff -r ec6cc297dd82 -r f2c37fe48668 src/lib-storage/index/dbox/dbox-save.c
--- a/src/lib-storage/index/dbox/dbox-save.c	Sun Dec 09 14:15:56 2007 +0200
+++ b/src/lib-storage/index/dbox/dbox-save.c	Sun Dec 09 15:01:14 2007 +0200
@@ -74,7 +74,6 @@ int dbox_save_init(struct mailbox_transa
 	struct dbox_message_header dbox_msg_hdr;
 	struct dbox_save_mail *save_mail;
 	struct istream *crlf_input;
-	const char *cur_path;
 	enum mail_flags save_flags;
 	const struct stat *st;
 	uoff_t mail_size;
@@ -99,7 +98,6 @@ int dbox_save_init(struct mailbox_transa
 		ctx->failed = TRUE;
 		return -1;
 	}
-	cur_path = dbox_file_get_path(ctx->cur_file);
 
 	/* add to index */
 	save_flags = flags & ~MAIL_RECENT;
@@ -136,7 +134,8 @@ int dbox_save_init(struct mailbox_transa
 	if (o_stream_send(ctx->cur_output, &dbox_msg_hdr,
 			  sizeof(dbox_msg_hdr)) < 0) {
 		mail_storage_set_critical(_t->box->storage,
-			"o_stream_send(%s) failed: %m", cur_path);
+			"o_stream_send(%s) failed: %m", 
+			dbox_file_get_path(ctx->cur_file));
 		ctx->failed = TRUE;
 	}
 
@@ -224,7 +223,6 @@ int dbox_save_finish(struct mail_save_co
 	struct dbox_save_context *ctx = (struct dbox_save_context *)_ctx;
 	struct mail_storage *storage = &ctx->mbox->storage->storage;
 	struct dbox_save_mail *save_mail;
-	const char *cur_path;
 	uoff_t offset = 0;
 	unsigned int count;
 
@@ -235,7 +233,9 @@ int dbox_save_finish(struct mail_save_co
 	index_mail_cache_parse_deinit(ctx->cur_dest_mail,
 				      ctx->cur_received_date);
 
-	if (!ctx->failed) {
+	if (!ctx->failed) T_FRAME_BEGIN {
+		const char *cur_path;
+
 		cur_path = dbox_file_get_path(ctx->cur_file);
 		offset = ctx->cur_output->offset;
 		dbox_save_write_metadata(ctx);
@@ -244,7 +244,7 @@ int dbox_save_finish(struct mail_save_co
 				"o_stream_flush(%s) failed: %m", cur_path);
 			ctx->failed = TRUE;
 		}
-	}
+	} T_FRAME_END;
 
 	o_stream_unref(&ctx->cur_output);
 	i_stream_unref(&ctx->input);


More information about the dovecot-cvs mailing list