aboutsummaryrefslogtreecommitdiffstats
path: root/em-format/e-mail-formatter-quote-attachment.c
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2012-12-05 21:19:04 +0800
committerMatthew Barnes <mbarnes@redhat.com>2012-12-08 03:01:04 +0800
commit91822b42dc7b5eb64cad2626f9fc620a2ee6a2c8 (patch)
tree1c06f36fa153eee0779cdfa1be1a24f62e93787d /em-format/e-mail-formatter-quote-attachment.c
parent2f0d83cf74b94d5e6272c07179df6e6c7a929789 (diff)
downloadgsoc2013-evolution-91822b42dc7b5eb64cad2626f9fc620a2ee6a2c8.tar
gsoc2013-evolution-91822b42dc7b5eb64cad2626f9fc620a2ee6a2c8.tar.gz
gsoc2013-evolution-91822b42dc7b5eb64cad2626f9fc620a2ee6a2c8.tar.bz2
gsoc2013-evolution-91822b42dc7b5eb64cad2626f9fc620a2ee6a2c8.tar.lz
gsoc2013-evolution-91822b42dc7b5eb64cad2626f9fc620a2ee6a2c8.tar.xz
gsoc2013-evolution-91822b42dc7b5eb64cad2626f9fc620a2ee6a2c8.tar.zst
gsoc2013-evolution-91822b42dc7b5eb64cad2626f9fc620a2ee6a2c8.zip
Make EMailPartList thread-safe.
Exposing data members in the public struct is unwise, especially when EMailPartList is used from multiple threads. Instead keep the members private and provide a set of thread-safe functions to manipulate them.
Diffstat (limited to 'em-format/e-mail-formatter-quote-attachment.c')
-rw-r--r--em-format/e-mail-formatter-quote-attachment.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/em-format/e-mail-formatter-quote-attachment.c b/em-format/e-mail-formatter-quote-attachment.c
index 5f88d97bff..822c93fc2b 100644
--- a/em-format/e-mail-formatter-quote-attachment.c
+++ b/em-format/e-mail-formatter-quote-attachment.c
@@ -71,21 +71,18 @@ emfqe_attachment_format (EMailFormatterExtension *extension,
gchar *text, *html;
guint32 text_format_flags;
EMailPartAttachment *empa;
- EMailPart *att_part;
- GSList *iter;
+ EMailPart *attachment_view_part;
empa = E_MAIL_PART_ATTACHMENT (part);
if (!empa->attachment_view_part_id)
return FALSE;
- iter = e_mail_part_list_get_iter (
- context->part_list->list, empa->attachment_view_part_id);
- if (!iter || !iter->data)
+ attachment_view_part = e_mail_part_list_ref_part (
+ context->part_list, empa->attachment_view_part_id);
+ if (attachment_view_part == NULL)
return FALSE;
- att_part = iter->data;
-
camel_stream_write_string (stream, "<br><br>", cancellable, NULL);
text_format_flags =
@@ -110,7 +107,8 @@ emfqe_attachment_format (EMailFormatterExtension *extension,
"<blockquote type=cite>\n", cancellable, NULL);
e_mail_formatter_format_as (
- formatter, context, att_part, stream, NULL, cancellable);
+ formatter, context, attachment_view_part,
+ stream, NULL, cancellable);
camel_stream_write_string (
stream,
@@ -118,6 +116,8 @@ emfqe_attachment_format (EMailFormatterExtension *extension,
"<DATA class=\"ClueFlow\" clear=\"orig\">-->",
cancellable, NULL);
+ e_mail_part_unref (attachment_view_part);
+
return TRUE;
}