aboutsummaryrefslogtreecommitdiffstats
path: root/e-util/e-attachment-view.c
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2013-05-23 00:11:59 +0800
committerMatthew Barnes <mbarnes@redhat.com>2013-05-24 04:36:02 +0800
commit9058c6f85dc49f9500e7e67819acfd8c0d2d369c (patch)
tree5802baf603e0995132e3652a6681068f0d9f060a /e-util/e-attachment-view.c
parent256422cab27d0b7adbe99fdeaceb72cd78c129bb (diff)
downloadgsoc2013-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 'e-util/e-attachment-view.c')
-rw-r--r--e-util/e-attachment-view.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/e-util/e-attachment-view.c b/e-util/e-attachment-view.c
index d078bd4b26..1fb868ed8b 100644
--- a/e-util/e-attachment-view.c
+++ b/e-util/e-attachment-view.c
@@ -174,7 +174,7 @@ action_open_with_cb (GtkAction *action,
E_ATTACHMENT_STORE_COLUMN_ATTACHMENT, &attachment, -1);
g_return_if_fail (E_IS_ATTACHMENT (attachment));
- file_info = e_attachment_get_file_info (attachment);
+ file_info = e_attachment_ref_file_info (attachment);
g_return_if_fail (file_info != NULL);
content_type = g_file_info_get_content_type (file_info);
@@ -192,6 +192,8 @@ action_open_with_cb (GtkAction *action,
g_object_unref (app_info);
}
+ g_object_unref (file_info);
+
g_list_foreach (list, (GFunc) gtk_tree_path_free, NULL);
g_list_free (list);
}
@@ -1560,7 +1562,7 @@ e_attachment_view_drag_begin (EAttachmentView *view,
gint width, height;
attachment = E_ATTACHMENT (priv->selected->data);
- icon = e_attachment_get_icon (attachment);
+ icon = e_attachment_ref_icon (attachment);
g_return_if_fail (icon != NULL);
icon_theme = gtk_icon_theme_get_default ();
@@ -1587,6 +1589,8 @@ e_attachment_view_drag_begin (EAttachmentView *view,
gtk_icon_info_free (icon_info);
}
+
+ g_object_unref (icon);
}
}