aboutsummaryrefslogtreecommitdiffstats
path: root/mail/message-list.c
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2010-05-18 20:07:19 +0800
committerMatthew Barnes <mbarnes@redhat.com>2010-05-18 20:21:19 +0800
commitbc054c94cb46e4f8f8881c2a1b0268e2f05b307b (patch)
treeb5d5aa33a890d0f5e3dad22cdb5a492df5a8c956 /mail/message-list.c
parent0ef487186875ab5dc9a049998ac1af0a2bec085e (diff)
downloadgsoc2013-evolution-bc054c94cb46e4f8f8881c2a1b0268e2f05b307b.tar.gz
gsoc2013-evolution-bc054c94cb46e4f8f8881c2a1b0268e2f05b307b.tar.zst
gsoc2013-evolution-bc054c94cb46e4f8f8881c2a1b0268e2f05b307b.zip
Bug 618902 - Crash when viewing/closing messages quickly
Closing an EMailBrowser window causes it to be disposed immediately, but ongoing async operations still hold an EMailBrowser reference -- in particular, regenerating the internal message list and fetching a mail message. The callback functions for these operations were not equipped to deal with the disposed-but-not-yet-finalized object.
Diffstat (limited to 'mail/message-list.c')
-rw-r--r--mail/message-list.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/mail/message-list.c b/mail/message-list.c
index e09ac09b77..466d4c5777 100644
--- a/mail/message-list.c
+++ b/mail/message-list.c
@@ -4580,7 +4580,7 @@ mail_regen_list (MessageList *ml, const gchar *search, const gchar *hideexpr, Ca
#endif
m = mail_msg_new (&regen_list_info);
- m->ml = ml;
+ m->ml = g_object_ref (ml);
m->search = g_strdup (search);
m->hideexpr = g_strdup (hideexpr);
m->changes = changes;
@@ -4588,9 +4588,7 @@ mail_regen_list (MessageList *ml, const gchar *search, const gchar *hideexpr, Ca
m->hidedel = ml->hidedeleted;
m->hidejunk = ml->hidejunk;
m->thread_subject = gconf_client_get_bool (gconf, "/apps/evolution/mail/display/thread_subject", NULL);
- g_object_ref(ml);
- m->folder = ml->folder;
- g_object_ref (m->folder);
+ m->folder = g_object_ref (ml->folder);
m->last_row = -1;
m->expand_state = NULL;