aboutsummaryrefslogtreecommitdiffstats
path: root/mail/em-folder-view.c
diff options
context:
space:
mode:
Diffstat (limited to 'mail/em-folder-view.c')
-rw-r--r--mail/em-folder-view.c24
1 files changed, 14 insertions, 10 deletions
diff --git a/mail/em-folder-view.c b/mail/em-folder-view.c
index b5222f7b6c..71e24a3d40 100644
--- a/mail/em-folder-view.c
+++ b/mail/em-folder-view.c
@@ -203,16 +203,6 @@ emfv_finalise(GObject *o)
EMFolderView *emfv = (EMFolderView *)o;
struct _EMFolderViewPrivate *p = emfv->priv;
- if (emfv->async)
- mail_async_event_destroy(emfv->async);
-
- if (emfv->folder) {
- if (p->folder_changed_id)
- camel_object_remove_event(emfv->folder, p->folder_changed_id);
- camel_object_unref(emfv->folder);
- g_free(emfv->folder_uri);
- }
-
g_slist_free(emfv->ui_files);
g_slist_free(emfv->enable_map);
@@ -240,6 +230,20 @@ emfv_destroy (GtkObject *o)
g_object_unref(gconf);
}
+ if (emfv->folder) {
+ if (p->folder_changed_id)
+ camel_object_remove_event(emfv->folder, p->folder_changed_id);
+ camel_object_unref(emfv->folder);
+ g_free(emfv->folder_uri);
+ emfv->folder = NULL;
+ emfv->folder_uri = NULL;
+ }
+
+ if (emfv->async) {
+ mail_async_event_destroy(emfv->async);
+ emfv->async = NULL;
+ }
+
if (p->invisible) {
g_object_unref(p->invisible);
p->invisible = NULL;