dovecot-1.1: struct mail can't necessarily be casted to struct i...

dovecot at dovecot.org dovecot at dovecot.org
Fri Mar 14 08:55:12 EET 2008


details:   http://hg.dovecot.org/dovecot-1.1/rev/45624f5ba358
changeset: 7414:45624f5ba358
user:      Timo Sirainen <tss at iki.fi>
date:      Fri Mar 14 08:52:14 2008 +0200
description:
struct mail can't necessarily be casted to struct index_mail. Added a new
get_index_mail() method to return it.

diffstat:

9 files changed, 19 insertions(+), 6 deletions(-)
src/lib-storage/index/cydir/cydir-mail.c     |    3 ++-
src/lib-storage/index/dbox/dbox-mail.c       |    3 ++-
src/lib-storage/index/index-mail.c           |    5 +++++
src/lib-storage/index/index-mail.h           |    1 +
src/lib-storage/index/index-search.c         |    2 +-
src/lib-storage/index/maildir/maildir-mail.c |    3 ++-
src/lib-storage/index/mbox/mbox-mail.c       |    3 ++-
src/lib-storage/index/raw/raw-mail.c         |    3 ++-
src/lib-storage/mail-storage-private.h       |    2 ++

diffs (102 lines):

diff -r 5d96b15832fc -r 45624f5ba358 src/lib-storage/index/cydir/cydir-mail.c
--- a/src/lib-storage/index/cydir/cydir-mail.c	Fri Mar 14 08:50:59 2008 +0200
+++ b/src/lib-storage/index/cydir/cydir-mail.c	Fri Mar 14 08:52:14 2008 +0200
@@ -136,5 +136,6 @@ struct mail_vfuncs cydir_mail_vfuncs = {
 	index_mail_update_flags,
 	index_mail_update_keywords,
 	index_mail_expunge,
-	index_mail_set_cache_corrupted
+	index_mail_set_cache_corrupted,
+	index_mail_get_index_mail
 };
diff -r 5d96b15832fc -r 45624f5ba358 src/lib-storage/index/dbox/dbox-mail.c
--- a/src/lib-storage/index/dbox/dbox-mail.c	Fri Mar 14 08:50:59 2008 +0200
+++ b/src/lib-storage/index/dbox/dbox-mail.c	Fri Mar 14 08:52:14 2008 +0200
@@ -237,5 +237,6 @@ struct mail_vfuncs dbox_mail_vfuncs = {
 	index_mail_update_flags,
 	index_mail_update_keywords,
 	index_mail_expunge,
-	index_mail_set_cache_corrupted
+	index_mail_set_cache_corrupted,
+	index_mail_get_index_mail
 };
diff -r 5d96b15832fc -r 45624f5ba358 src/lib-storage/index/index-mail.c
--- a/src/lib-storage/index/index-mail.c	Fri Mar 14 08:50:59 2008 +0200
+++ b/src/lib-storage/index/index-mail.c	Fri Mar 14 08:52:14 2008 +0200
@@ -1402,3 +1402,8 @@ void index_mail_set_cache_corrupted(stru
 				 "Broken %s for mail UID %u",
 				 field_name, mail->uid);
 }
+
+struct index_mail *index_mail_get_index_mail(struct mail *mail)
+{
+	return (struct index_mail *)mail;
+}
diff -r 5d96b15832fc -r 45624f5ba358 src/lib-storage/index/index-mail.h
--- a/src/lib-storage/index/index-mail.h	Fri Mar 14 08:50:59 2008 +0200
+++ b/src/lib-storage/index/index-mail.h	Fri Mar 14 08:52:14 2008 +0200
@@ -193,6 +193,7 @@ void index_mail_expunge(struct mail *mai
 void index_mail_expunge(struct mail *mail);
 void index_mail_set_cache_corrupted(struct mail *mail,
 				    enum mail_fetch_field field);
+struct index_mail *index_mail_get_index_mail(struct mail *mail);
 
 bool index_mail_get_cached_uoff_t(struct index_mail *mail,
 				  enum index_cache_field field, uoff_t *size_r);
diff -r 5d96b15832fc -r 45624f5ba358 src/lib-storage/index/index-search.c
--- a/src/lib-storage/index/index-search.c	Fri Mar 14 08:50:59 2008 +0200
+++ b/src/lib-storage/index/index-search.c	Fri Mar 14 08:52:14 2008 +0200
@@ -1027,7 +1027,7 @@ int index_storage_search_next_nonblock(s
 	}
 
 	ctx->mail = mail;
-	ctx->imail = (struct index_mail *)mail;
+	ctx->imail = ((struct mail_private *)mail)->v.get_index_mail(mail);
 
 	if (ioloop_time - ctx->last_notify.tv_sec >=
 	    SEARCH_NOTIFY_INTERVAL_SECS)
diff -r 5d96b15832fc -r 45624f5ba358 src/lib-storage/index/maildir/maildir-mail.c
--- a/src/lib-storage/index/maildir/maildir-mail.c	Fri Mar 14 08:50:59 2008 +0200
+++ b/src/lib-storage/index/maildir/maildir-mail.c	Fri Mar 14 08:52:14 2008 +0200
@@ -455,5 +455,6 @@ struct mail_vfuncs maildir_mail_vfuncs =
 	index_mail_update_flags,
 	index_mail_update_keywords,
 	index_mail_expunge,
-	index_mail_set_cache_corrupted
+	index_mail_set_cache_corrupted,
+	index_mail_get_index_mail
 };
diff -r 5d96b15832fc -r 45624f5ba358 src/lib-storage/index/mbox/mbox-mail.c
--- a/src/lib-storage/index/mbox/mbox-mail.c	Fri Mar 14 08:50:59 2008 +0200
+++ b/src/lib-storage/index/mbox/mbox-mail.c	Fri Mar 14 08:52:14 2008 +0200
@@ -297,5 +297,6 @@ struct mail_vfuncs mbox_mail_vfuncs = {
 	index_mail_update_flags,
 	index_mail_update_keywords,
 	index_mail_expunge,
-	index_mail_set_cache_corrupted
+	index_mail_set_cache_corrupted,
+	index_mail_get_index_mail
 };
diff -r 5d96b15832fc -r 45624f5ba358 src/lib-storage/index/raw/raw-mail.c
--- a/src/lib-storage/index/raw/raw-mail.c	Fri Mar 14 08:50:59 2008 +0200
+++ b/src/lib-storage/index/raw/raw-mail.c	Fri Mar 14 08:52:14 2008 +0200
@@ -126,5 +126,6 @@ struct mail_vfuncs raw_mail_vfuncs = {
 	index_mail_update_flags,
 	index_mail_update_keywords,
 	index_mail_expunge,
-	index_mail_set_cache_corrupted
+	index_mail_set_cache_corrupted,
+	index_mail_get_index_mail
 };
diff -r 5d96b15832fc -r 45624f5ba358 src/lib-storage/mail-storage-private.h
--- a/src/lib-storage/mail-storage-private.h	Fri Mar 14 08:50:59 2008 +0200
+++ b/src/lib-storage/mail-storage-private.h	Fri Mar 14 08:52:14 2008 +0200
@@ -240,6 +240,8 @@ struct mail_vfuncs {
 	void (*expunge)(struct mail *mail);
 	void (*set_cache_corrupted)(struct mail *mail,
 				    enum mail_fetch_field field);
+
+	struct index_mail *(*get_index_mail)(struct mail *mail);
 };
 
 union mail_module_context {


More information about the dovecot-cvs mailing list