changeset 3085:73944f902165 HEAD

don't allocate memory from data stack uselessly.
author Timo Sirainen <tss@iki.fi>
date Mon, 10 Jan 2005 18:14:41 +0200
parents 873ce1b9747e
children 66c44404f9a1
files src/lib-storage/index/maildir/maildir-sync.c
diffstat 1 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/index/maildir/maildir-sync.c	Sun Jan 09 22:29:08 2005 +0200
+++ b/src/lib-storage/index/maildir/maildir-sync.c	Mon Jan 10 18:14:41 2005 +0200
@@ -600,6 +600,7 @@
 	struct mail_index_transaction *trans;
 	const struct mail_index_header *hdr;
 	const struct mail_index_record *rec;
+	pool_t keyword_pool;
 	uint32_t seq, uid;
         enum maildir_uidlist_rec_flag uflags;
 	const char *filename;
@@ -625,11 +626,13 @@
 	trans = mail_index_transaction_begin(view, FALSE, TRUE);
 	sync_ctx->trans = trans;
 
+	keyword_pool = pool_alloconly_create("maildir keywords", 128);
+
 	seq = 0;
 	iter = maildir_uidlist_iter_init(ibox->uidlist);
 	while (maildir_uidlist_iter_next(iter, &uid, &uflags, &filename)) {
-		// FIXME: t_push..
-		maildir_filename_get_flags(filename, pool_datastack_create(),
+		p_clear(keyword_pool);
+		maildir_filename_get_flags(filename, keyword_pool,
 					   &flags, &keywords);
 
 		if ((uflags & MAILDIR_UIDLIST_REC_FLAG_RECENT) != 0 &&
@@ -767,6 +770,7 @@
 		// FIXME: update keywords
 	}
 	maildir_uidlist_iter_deinit(iter);
+	pool_unref(keyword_pool);
 
 	if (!partial) {
 		/* expunge the rest */