changeset 6291:2f960cea48b1 HEAD

mail.close() virtual function finishing.
author Timo Sirainen <tss@iki.fi>
date Mon, 13 Aug 2007 18:25:25 +0300
parents b04d136f8174
children 623639306046
files src/lib-storage/index/index-mail.c src/lib-storage/index/index-mail.h
diffstat 2 files changed, 25 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/index/index-mail.c	Mon Aug 13 18:00:19 2007 +0300
+++ b/src/lib-storage/index/index-mail.c	Mon Aug 13 18:25:25 2007 +0300
@@ -859,22 +859,34 @@
 }
 
 struct mail *
-index_mail_alloc(struct mailbox_transaction_context *_t,
+index_mail_alloc(struct mailbox_transaction_context *t,
 		 enum mail_fetch_field wanted_fields,
-		 struct mailbox_header_lookup_ctx *_wanted_headers)
+		 struct mailbox_header_lookup_ctx *wanted_headers)
+{
+	struct index_mail *mail;
+	pool_t pool;
+
+	pool = pool_alloconly_create("mail", 1024);
+	mail = p_new(pool, struct index_mail, 1);
+	mail->mail.pool = pool;
+
+	index_mail_init(mail, t, wanted_fields, wanted_headers);
+	return &mail->mail.mail;
+}
+
+void index_mail_init(struct index_mail *mail,
+		     struct mailbox_transaction_context *_t,
+		     enum mail_fetch_field wanted_fields,
+		     struct mailbox_header_lookup_ctx *_wanted_headers)
 {
 	struct index_transaction_context *t =
 		(struct index_transaction_context *)_t;
 	struct index_header_lookup_ctx *wanted_headers =
 		(struct index_header_lookup_ctx *)_wanted_headers;
-	struct index_mail *mail;
 	const struct mail_index_header *hdr;
-	pool_t pool;
 
-	pool = pool_alloconly_create("mail", 1024);
-	mail = p_new(pool, struct index_mail, 1);
-	mail->mail.pool = pool;
-	array_create(&mail->mail.module_contexts, pool, sizeof(void *), 5);
+	array_create(&mail->mail.module_contexts, mail->mail.pool,
+		     sizeof(void *), 5);
 
 	mail->mail.v = *t->ibox->mail_vfuncs;
 	mail->mail.mail.box = &t->ibox->box;
@@ -888,8 +900,6 @@
 	mail->trans = t;
 	mail->wanted_fields = wanted_fields;
 	mail->wanted_headers = wanted_headers;
-
-	return &mail->mail.mail;
 }
 
 void index_mail_close(struct mail *_mail)
--- a/src/lib-storage/index/index-mail.h	Mon Aug 13 18:00:19 2007 +0300
+++ b/src/lib-storage/index/index-mail.h	Mon Aug 13 18:25:25 2007 +0300
@@ -131,6 +131,11 @@
 index_mail_alloc(struct mailbox_transaction_context *t,
 		 enum mail_fetch_field wanted_fields,
 		 struct mailbox_header_lookup_ctx *wanted_headers);
+void index_mail_init(struct index_mail *mail,
+		     struct mailbox_transaction_context *_t,
+		     enum mail_fetch_field wanted_fields,
+		     struct mailbox_header_lookup_ctx *_wanted_headers);
+
 void index_mail_set_seq(struct mail *mail, uint32_t seq);
 bool index_mail_set_uid(struct mail *mail, uint32_t uid);
 void index_mail_close(struct mail *mail);