diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2013-05-23 00:11:59 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2013-05-24 04:36:02 +0800 |
commit | 9058c6f85dc49f9500e7e67819acfd8c0d2d369c (patch) | |
tree | 5802baf603e0995132e3652a6681068f0d9f060a /em-format/e-mail-formatter-attachment.c | |
parent | 256422cab27d0b7adbe99fdeaceb72cd78c129bb (diff) | |
download | gsoc2013-evolution-9058c6f85dc49f9500e7e67819acfd8c0d2d369c.tar gsoc2013-evolution-9058c6f85dc49f9500e7e67819acfd8c0d2d369c.tar.gz gsoc2013-evolution-9058c6f85dc49f9500e7e67819acfd8c0d2d369c.tar.bz2 gsoc2013-evolution-9058c6f85dc49f9500e7e67819acfd8c0d2d369c.tar.lz gsoc2013-evolution-9058c6f85dc49f9500e7e67819acfd8c0d2d369c.tar.xz gsoc2013-evolution-9058c6f85dc49f9500e7e67819acfd8c0d2d369c.tar.zst gsoc2013-evolution-9058c6f85dc49f9500e7e67819acfd8c0d2d369c.zip |
Make EAttachment a little more thread-safe.
EAttachment is now used from worker threads by EMailFormatterAttachment,
so add some thread-safe accessor functions to eliminate potential races.
Added thread-safe functions:
e_attachment_dup_disposition()
e_attachment_ref_file()
e_attachment_ref_file_info()
e_attachment_ref_icon()
e_attachment_ref_mime_part()
e_attachment_dup_description()
e_attachment_dup_thumbnail_path()
Renamed functions:
e_attachment_get_mime_type() -> e_attachment_dup_mime_type()
Removed non-thread-safe functions:
e_attachment_get_file()
e_attachment_get_file_info()
e_attachment_get_icon()
e_attachment_get_mime_part()
e_attachment_get_description()
e_attachment_get_thumbnail_path()
Diffstat (limited to 'em-format/e-mail-formatter-attachment.c')
-rw-r--r-- | em-format/e-mail-formatter-attachment.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/em-format/e-mail-formatter-attachment.c b/em-format/e-mail-formatter-attachment.c index 1003b55eef..fb997c0230 100644 --- a/em-format/e-mail-formatter-attachment.c +++ b/em-format/e-mail-formatter-attachment.c @@ -198,17 +198,17 @@ emfe_attachment_format (EMailFormatterExtension *extension, if (context->mode == E_MAIL_FORMATTER_MODE_PRINTING) { gchar *name; EAttachment *attachment; - GFileInfo *fi; - const gchar *description; + GFileInfo *file_info; const gchar *display_name; + gchar *description; attachment = e_mail_part_attachment_ref_attachment ( E_MAIL_PART_ATTACHMENT (part)); - fi = e_attachment_get_file_info (attachment); - display_name = g_file_info_get_display_name (fi); + file_info = e_attachment_ref_file_info (attachment); + display_name = g_file_info_get_display_name (file_info); - description = e_attachment_get_description (attachment); + description = e_attachment_dup_description (attachment); if (description != NULL && *description != '\0') { name = g_strdup_printf ( "<h2>Attachment: %s (%s)</h2>\n", @@ -222,9 +222,11 @@ emfe_attachment_format (EMailFormatterExtension *extension, camel_stream_write_string ( stream, name, cancellable, NULL); + g_free (description); g_free (name); g_object_unref (attachment); + g_object_unref (file_info); } for (iter = g_queue_peek_head_link (extensions); iter; iter = iter->next) { |