From 1d10cdded5ac9b95aeb3c6f6b3bceaf02bd40305 Mon Sep 17 00:00:00 2001 From: Jeffrey Stedfast Date: Fri, 20 Feb 2004 19:06:19 +0000 Subject: Fix for bug #53997 2004-02-20 Jeffrey Stedfast Fix for bug #53997 * em-folder-view.c (emfv_list_message_selected): Ref the emfv before spawning the async event. (emfv_list_done_message_selected): Check emfv->preview != NULL. Also unref the emfv when done. svn path=/trunk/; revision=24820 --- mail/em-folder-view.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'mail/em-folder-view.c') diff --git a/mail/em-folder-view.c b/mail/em-folder-view.c index bec6164409..fe37964206 100644 --- a/mail/em-folder-view.c +++ b/mail/em-folder-view.c @@ -1742,7 +1742,12 @@ static void emfv_list_done_message_selected(CamelFolder *folder, const char *uid, CamelMimeMessage *msg, void *data) { EMFolderView *emfv = data; - + + if (emfv->preview == NULL) { + g_object_unref (emfv); + return; + } + em_format_format((EMFormat *)emfv->preview, folder, uid, msg); if (emfv->priv->seen_id) @@ -1762,6 +1767,8 @@ emfv_list_done_message_selected(CamelFolder *folder, const char *uid, CamelMimeM camel_folder_set_message_flags(emfv->folder, uid, CAMEL_MESSAGE_SEEN, CAMEL_MESSAGE_SEEN); } } + + g_object_unref (emfv); } static void @@ -1774,6 +1781,7 @@ emfv_list_message_selected(MessageList *ml, const char *uid, EMFolderView *emfv) if (emfv->displayed_uid == NULL || strcmp(emfv->displayed_uid, uid) != 0) { g_free(emfv->displayed_uid); emfv->displayed_uid = g_strdup(uid); + g_object_ref (emfv); mail_get_message(emfv->folder, uid, emfv_list_done_message_selected, emfv, mail_thread_new); } } else { -- cgit v1.2.3