aboutsummaryrefslogtreecommitdiffstats
path: root/modules/mail/e-mail-shell-view-private.c
diff options
context:
space:
mode:
Diffstat (limited to 'modules/mail/e-mail-shell-view-private.c')
-rw-r--r--modules/mail/e-mail-shell-view-private.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/modules/mail/e-mail-shell-view-private.c b/modules/mail/e-mail-shell-view-private.c
index 54f4d581e4..aa9addf4a5 100644
--- a/modules/mail/e-mail-shell-view-private.c
+++ b/modules/mail/e-mail-shell-view-private.c
@@ -200,7 +200,7 @@ mail_shell_view_folder_tree_selection_done_cb (EMailShellView *mail_shell_view,
EMailReader *reader;
EMailView *mail_view;
CamelFolder *folder;
- gchar *list_uri;
+ gchar *list_uri = NULL;
gchar *tree_uri;
mail_shell_content = mail_shell_view->priv->mail_shell_content;
@@ -216,16 +216,17 @@ mail_shell_view_folder_tree_selection_done_cb (EMailShellView *mail_shell_view,
* method gets the folder from the message list is supposed to be
* a hidden implementation detail, and we want to explicitly get
* the folder URI from the message list here. */
- folder = MESSAGE_LIST (message_list)->folder;
- if (folder)
+ folder = message_list_ref_folder (MESSAGE_LIST (message_list));
+ if (folder != NULL) {
list_uri = e_mail_folder_uri_from_folder (folder);
- else
- list_uri = NULL;
+ g_object_unref (folder);
+ }
+
tree_uri = em_folder_tree_get_selected_uri (folder_tree);
/* If the folder tree and message list disagree on the current
* folder, reset the folder tree to match the message list. */
- if (list_uri && g_strcmp0 (tree_uri, list_uri) != 0)
+ if (list_uri != NULL && g_strcmp0 (tree_uri, list_uri) != 0)
em_folder_tree_set_selected (folder_tree, list_uri, FALSE);
g_free (list_uri);