aboutsummaryrefslogtreecommitdiffstats
path: root/em-format/e-mail-formatter-quote-headers.c
diff options
context:
space:
mode:
Diffstat (limited to 'em-format/e-mail-formatter-quote-headers.c')
-rw-r--r--em-format/e-mail-formatter-quote-headers.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/em-format/e-mail-formatter-quote-headers.c b/em-format/e-mail-formatter-quote-headers.c
index fa6c02752b..f23397b3b5 100644
--- a/em-format/e-mail-formatter-quote-headers.c
+++ b/em-format/e-mail-formatter-quote-headers.c
@@ -190,6 +190,7 @@ emqfe_headers_format (EMailFormatterExtension *extension,
GCancellable *cancellable)
{
CamelContentType *ct;
+ CamelMimePart *mime_part;
const gchar *charset;
GList *iter;
GString *buffer;
@@ -198,7 +199,9 @@ emqfe_headers_format (EMailFormatterExtension *extension,
if (!part)
return FALSE;
- ct = camel_mime_part_get_content_type ((CamelMimePart *) part->part);
+ mime_part = e_mail_part_ref_mime_part (part);
+
+ ct = camel_mime_part_get_content_type (mime_part);
charset = camel_content_type_param (ct, "charset");
charset = camel_iconv_charset_name (charset);
@@ -214,13 +217,13 @@ emqfe_headers_format (EMailFormatterExtension *extension,
flags = h->flags & ~E_MAIL_FORMATTER_HEADER_FLAG_HTML;
flags |= E_MAIL_FORMATTER_HEADER_FLAG_NOELIPSIZE;
- for (raw_header = part->part->headers; raw_header; raw_header = raw_header->next) {
+ for (raw_header = mime_part->headers; raw_header; raw_header = raw_header->next) {
if (g_strcmp0 (raw_header->name, h->name) == 0) {
emfqe_format_header (
formatter, buffer,
- (CamelMedium *) part->part,
+ CAMEL_MEDIUM (mime_part),
raw_header, flags, charset);
break;
}
@@ -235,6 +238,8 @@ emqfe_headers_format (EMailFormatterExtension *extension,
g_string_free (buffer, TRUE);
+ g_object_unref (mime_part);
+
return TRUE;
}