diff options
Diffstat (limited to 'em-format/e-mail-formatter.c')
-rw-r--r-- | em-format/e-mail-formatter.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/em-format/e-mail-formatter.c b/em-format/e-mail-formatter.c index e2e6da75a3..4ce93a7db2 100644 --- a/em-format/e-mail-formatter.c +++ b/em-format/e-mail-formatter.c @@ -1037,14 +1037,14 @@ e_mail_formatter_format_text (EMailFormatter *formatter, const gchar *charset = NULL; CamelMimeFilter *windows = NULL; CamelStream *mem_stream = NULL; - CamelDataWrapper *dw; + CamelMimePart *mime_part; CamelContentType *mime_type; if (g_cancellable_is_cancelled (cancellable)) return; - dw = CAMEL_DATA_WRAPPER (part->part); - mime_type = dw->mime_type; + mime_part = e_mail_part_ref_mime_part (part); + mime_type = CAMEL_DATA_WRAPPER (mime_part)->mime_type; if (formatter->priv->charset != NULL) { charset = formatter->priv->charset; @@ -1067,7 +1067,8 @@ e_mail_formatter_format_text (EMailFormatter *formatter, CAMEL_STREAM_FILTER (filter_stream), windows); camel_data_wrapper_decode_to_stream_sync ( - dw, filter_stream, cancellable, NULL); + CAMEL_DATA_WRAPPER (mime_part), + filter_stream, cancellable, NULL); camel_stream_flush (filter_stream, cancellable, NULL); g_object_unref (filter_stream); @@ -1088,7 +1089,7 @@ e_mail_formatter_format_text (EMailFormatter *formatter, } camel_data_wrapper_decode_to_stream_sync ( - camel_medium_get_content (CAMEL_MEDIUM (dw)), + camel_medium_get_content (CAMEL_MEDIUM (mime_part)), filter_stream, cancellable, NULL); camel_stream_flush (filter_stream, cancellable, NULL); g_object_unref (filter_stream); @@ -1103,6 +1104,8 @@ e_mail_formatter_format_text (EMailFormatter *formatter, g_object_unref (windows); g_object_unref (mem_stream); + + g_object_unref (mime_part); } gchar * |