dovecot-2.0: lib-storage: mail_get_parts() no longer returns con...

dovecot at dovecot.org dovecot at dovecot.org
Sat Mar 27 02:41:11 EET 2010


details:   http://hg.dovecot.org/dovecot-2.0/rev/679e99e430d7
changeset: 11000:679e99e430d7
user:      Timo Sirainen <tss at iki.fi>
date:      Sat Mar 27 02:39:49 2010 +0200
description:
lib-storage: mail_get_parts() no longer returns const pointer.
The struct message_part contained context-pointer and other APIs were using
it, so the pointer really couldn't be const without casting it away
sometimes.

diffstat:

 src/imap/imap-fetch-body.c             |  2 +-
 src/lib-mail/message-search.c          |  7 +++----
 src/lib-mail/message-search.h          |  2 +-
 src/lib-storage/index/index-mail.c     |  3 +--
 src/lib-storage/index/index-mail.h     |  3 +--
 src/lib-storage/index/index-search.c   |  2 +-
 src/lib-storage/mail-storage-private.h |  2 +-
 src/lib-storage/mail-storage.h         |  2 +-
 src/lib-storage/mail.c                 |  2 +-
 src/lib-storage/test-mail.c            |  2 +-
 src/plugins/virtual/virtual-mail.c     |  2 +-
 11 files changed, 13 insertions(+), 16 deletions(-)

diffs (152 lines):

diff -r a2c6c91635b5 -r 679e99e430d7 src/imap/imap-fetch-body.c
--- a/src/imap/imap-fetch-body.c	Sat Mar 27 00:35:44 2010 +0000
+++ b/src/imap/imap-fetch-body.c	Sat Mar 27 02:39:49 2010 +0200
@@ -496,7 +496,7 @@
 static int part_find(struct mail *mail, const struct imap_fetch_body_data *body,
 		     const struct message_part **part_r, const char **section_r)
 {
-	const struct message_part *part;
+	struct message_part *part;
 	const char *path;
 	unsigned int num;
 
diff -r a2c6c91635b5 -r 679e99e430d7 src/lib-mail/message-search.c
--- a/src/lib-mail/message-search.c	Sat Mar 27 00:35:44 2010 +0000
+++ b/src/lib-mail/message-search.c	Sat Mar 27 02:39:49 2010 +0200
@@ -209,7 +209,7 @@
 
 static int
 message_search_msg_real(struct message_search_context *ctx,
-			struct istream *input, const struct message_part *parts)
+			struct istream *input, struct message_part *parts)
 {
 	const enum message_header_parser_flags hdr_parser_flags =
 		MESSAGE_HEADER_PARSER_FLAG_CLEAN_ONELINE;
@@ -221,8 +221,7 @@
 	message_search_reset(ctx);
 
 	if (parts != NULL) {
-		parser_ctx = message_parser_init_from_parts(
-						(struct message_part *)parts,
+		parser_ctx = message_parser_init_from_parts(parts,
 						input, hdr_parser_flags, 0);
 	} else {
 		parser_ctx = message_parser_init(pool_datastack_create(),
@@ -250,7 +249,7 @@
 }
 
 int message_search_msg(struct message_search_context *ctx,
-		       struct istream *input, const struct message_part *parts)
+		       struct istream *input, struct message_part *parts)
 {
 	int ret;
 
diff -r a2c6c91635b5 -r 679e99e430d7 src/lib-mail/message-search.h
--- a/src/lib-mail/message-search.h	Sat Mar 27 00:35:44 2010 +0000
+++ b/src/lib-mail/message-search.h	Sat Mar 27 02:39:49 2010 +0200
@@ -27,6 +27,6 @@
 /* Search a full message. Returns 1 if match was found, 0 if not,
    -1 if error (if stream_error == 0, the parts contained broken data) */
 int message_search_msg(struct message_search_context *ctx,
-		       struct istream *input, const struct message_part *parts);
+		       struct istream *input, struct message_part *parts);
 
 #endif
diff -r a2c6c91635b5 -r 679e99e430d7 src/lib-storage/index/index-mail.c
--- a/src/lib-storage/index/index-mail.c	Sat Mar 27 00:35:44 2010 +0000
+++ b/src/lib-storage/index/index-mail.c	Sat Mar 27 02:39:49 2010 +0200
@@ -196,8 +196,7 @@
 	return &data->keyword_indexes;
 }
 
-int index_mail_get_parts(struct mail *_mail,
-			 const struct message_part **parts_r)
+int index_mail_get_parts(struct mail *_mail, struct message_part **parts_r)
 {
 	struct index_mail *mail = (struct index_mail *)_mail;
 	struct index_mail_data *data = &mail->data;
diff -r a2c6c91635b5 -r 679e99e430d7 src/lib-storage/index/index-mail.h
--- a/src/lib-storage/index/index-mail.h	Sat Mar 27 00:35:44 2010 +0000
+++ b/src/lib-storage/index/index-mail.h	Sat Mar 27 02:39:49 2010 +0200
@@ -182,8 +182,7 @@
 const char *const *index_mail_get_keywords(struct mail *_mail);
 const ARRAY_TYPE(keyword_indexes) *
 index_mail_get_keyword_indexes(struct mail *_mail);
-int index_mail_get_parts(struct mail *_mail,
-			 const struct message_part **parts_r);
+int index_mail_get_parts(struct mail *_mail, struct message_part **parts_r);
 int index_mail_get_received_date(struct mail *_mail, time_t *date_r);
 int index_mail_get_save_date(struct mail *_mail, time_t *date_r);
 int index_mail_get_date(struct mail *_mail, time_t *date_r, int *timezone_r);
diff -r a2c6c91635b5 -r 679e99e430d7 src/lib-storage/index/index-search.c
--- a/src/lib-storage/index/index-search.c	Sat Mar 27 00:35:44 2010 +0000
+++ b/src/lib-storage/index/index-search.c	Sat Mar 27 02:39:49 2010 +0200
@@ -73,7 +73,7 @@
 struct search_body_context {
         struct index_search_context *index_ctx;
 	struct istream *input;
-	const struct message_part *part;
+	struct message_part *part;
 };
 
 static const enum message_header_parser_flags hdr_parser_flags =
diff -r a2c6c91635b5 -r 679e99e430d7 src/lib-storage/mail-storage-private.h
--- a/src/lib-storage/mail-storage-private.h	Sat Mar 27 00:35:44 2010 +0000
+++ b/src/lib-storage/mail-storage-private.h	Sat Mar 27 02:39:49 2010 +0200
@@ -281,7 +281,7 @@
 	uint64_t (*get_modseq)(struct mail *mail);
 
 	int (*get_parts)(struct mail *mail,
-			 const struct message_part **parts_r);
+			 struct message_part **parts_r);
 	int (*get_date)(struct mail *mail, time_t *date_r, int *timezone_r);
 	int (*get_received_date)(struct mail *mail, time_t *date_r);
 	int (*get_save_date)(struct mail *mail, time_t *date_r);
diff -r a2c6c91635b5 -r 679e99e430d7 src/lib-storage/mail-storage.h
--- a/src/lib-storage/mail-storage.h	Sat Mar 27 00:35:44 2010 +0000
+++ b/src/lib-storage/mail-storage.h	Sat Mar 27 02:39:49 2010 +0200
@@ -614,7 +614,7 @@
 uint64_t mail_get_modseq(struct mail *mail);
 
 /* Returns message's MIME parts */
-int mail_get_parts(struct mail *mail, const struct message_part **parts_r);
+int mail_get_parts(struct mail *mail, struct message_part **parts_r);
 
 /* Get the Date-header of the mail. Timezone is in minutes. date=0 if it
    wasn't found or it was invalid. */
diff -r a2c6c91635b5 -r 679e99e430d7 src/lib-storage/mail.c
--- a/src/lib-storage/mail.c	Sat Mar 27 00:35:44 2010 +0000
+++ b/src/lib-storage/mail.c	Sat Mar 27 02:39:49 2010 +0200
@@ -68,7 +68,7 @@
 	return p->v.get_keyword_indexes(mail);
 }
 
-int mail_get_parts(struct mail *mail, const struct message_part **parts_r)
+int mail_get_parts(struct mail *mail, struct message_part **parts_r)
 {
 	struct mail_private *p = (struct mail_private *)mail;
 
diff -r a2c6c91635b5 -r 679e99e430d7 src/lib-storage/test-mail.c
--- a/src/lib-storage/test-mail.c	Sat Mar 27 00:35:44 2010 +0000
+++ b/src/lib-storage/test-mail.c	Sat Mar 27 02:39:49 2010 +0200
@@ -82,7 +82,7 @@
 
 static int
 test_mail_get_parts(struct mail *mail ATTR_UNUSED,
-		    const struct message_part **parts_r ATTR_UNUSED)
+		    struct message_part **parts_r ATTR_UNUSED)
 {
 	return -1;
 }
diff -r a2c6c91635b5 -r 679e99e430d7 src/plugins/virtual/virtual-mail.c
--- a/src/plugins/virtual/virtual-mail.c	Sat Mar 27 00:35:44 2010 +0000
+++ b/src/plugins/virtual/virtual-mail.c	Sat Mar 27 02:39:49 2010 +0200
@@ -172,7 +172,7 @@
 }
 
 static int
-virtual_mail_get_parts(struct mail *mail, const struct message_part **parts_r)
+virtual_mail_get_parts(struct mail *mail, struct message_part **parts_r)
 {
 	struct virtual_mail *vmail = (struct virtual_mail *)mail;
 


More information about the dovecot-cvs mailing list