From 9593a6ab4b66ddaf14169989a2c460d3a1167aa7 Mon Sep 17 00:00:00 2001 From: Sergio Villar Senin Date: Thu, 27 Nov 2008 18:49:51 +0000 Subject: [PATCH] Fixes an invalid call to tny_folder_get_account. It must be checked before that it's not a merge folder pmo-drop-split-view-r6454 --- src/widgets/modest-folder-view.c | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/src/widgets/modest-folder-view.c b/src/widgets/modest-folder-view.c index d710beb..4888a11 100644 --- a/src/widgets/modest-folder-view.c +++ b/src/widgets/modest-folder-view.c @@ -429,32 +429,34 @@ format_compact_style (gchar **item_name, gboolean *use_markup) { TnyFolder *folder; - GString *buffer; - TnyAccount *account; gboolean is_special; TnyFolderType folder_type; - const gchar *folder_name; - gboolean concat_folder_name = FALSE; if (!TNY_IS_FOLDER (instance)) return; folder = (TnyFolder *) instance; - account = tny_folder_get_account (folder); - if (account == NULL) - return; - - folder_name = tny_folder_get_name (folder); - if (g_str_has_suffix (*item_name, folder_name)) { - gchar *offset = g_strrstr (*item_name, folder_name); - *offset = '\0'; - concat_folder_name = TRUE; - } folder_type = tny_folder_get_folder_type (folder); is_special = (get_cmp_pos (folder_type, folder)!= 4); if (!is_special) { + TnyAccount *account = tny_folder_get_account (folder); + const gchar *folder_name; + gboolean concat_folder_name = FALSE; + GString *buffer; + + /* Should not happen */ + if (account == NULL) + return; + + folder_name = tny_folder_get_name (folder); + if (g_str_has_suffix (*item_name, folder_name)) { + gchar *offset = g_strrstr (*item_name, folder_name); + *offset = '\0'; + concat_folder_name = TRUE; + } + buffer = g_string_new (""); buffer = g_string_append (buffer, tny_account_get_name (account)); buffer = g_string_append (buffer, MODEST_FOLDER_PATH_SEPARATOR); @@ -465,14 +467,13 @@ format_compact_style (gchar **item_name, if (bold) buffer = g_string_append (buffer, ""); } g_free (*item_name); + g_object_unref (account); + *item_name = g_string_free (buffer, FALSE); *use_markup = bold; } else { *use_markup = FALSE; } - - - g_object_unref (account); } static void -- 1.7.9.5