X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fmodest-tny-account.c;h=070f3a2aa52648f2a992cd4e0aee2ddc6d520939;hb=2a18ad39011ef93b468a637c00da675c81940153;hp=f9a2b10a0031e87d7f567a6e40a722b59b295b11;hpb=ac93729ec59e4b6ae2169ae3127d46057dfb9b12;p=modest diff --git a/src/modest-tny-account.c b/src/modest-tny-account.c index f9a2b10..070f3a2 100644 --- a/src/modest-tny-account.c +++ b/src/modest-tny-account.c @@ -74,21 +74,24 @@ modest_tny_account_get_special_folder (TnyAccount *account, if (special_type == TNY_FOLDER_TYPE_OUTBOX) { const gchar *modest_account_name = modest_tny_account_get_parent_modest_account_name_for_server_account (account); - g_assert (modest_account_name); - - gchar *account_id = g_strdup_printf ( - MODEST_PER_ACCOUNT_LOCAL_OUTBOX_FOLDER_ACCOUNT_ID_PREFIX "%s", - modest_account_name); - local_account = modest_tny_account_store_get_tny_account_by (modest_runtime_get_account_store(), - MODEST_TNY_ACCOUNT_STORE_QUERY_ID, - account_id); - if (!local_account) { - g_printerr ("modest: %s: modest_tny_account_store_get_tny_account_by(ID) returned NULL for %s\n", __FUNCTION__, account_id); - return NULL; + if (modest_account_name) { + gchar *account_id = g_strdup_printf ( + MODEST_PER_ACCOUNT_LOCAL_OUTBOX_FOLDER_ACCOUNT_ID_PREFIX "%s", + modest_account_name); + + local_account = modest_tny_account_store_get_tny_account_by (modest_runtime_get_account_store(), + MODEST_TNY_ACCOUNT_STORE_QUERY_ID, + account_id); + if (!local_account) { + g_printerr ("modest: %s: modest_tny_account_store_get_tny_account_by(ID) returned NULL for %s\n", __FUNCTION__, account_id); + return NULL; + } + + g_free (account_id); + } else { + g_warning ("%s: modest_account_name was NULL.", __FUNCTION__); } - - g_free (account_id); } else { /* Other local folders are all in one on-disk directory: */ local_account = modest_tny_account_store_get_tny_account_by (modest_runtime_get_account_store(), @@ -126,12 +129,15 @@ modest_tny_account_get_special_folder (TnyAccount *account, while (!tny_iterator_is_done (iter)) { TnyFolder *folder = TNY_FOLDER (tny_iterator_get_current (iter)); - if (modest_tny_folder_get_local_folder_type (folder) == special_type) { - special_folder = folder; - break; - } + if (folder) { + if (modest_tny_folder_get_local_or_mmc_folder_type (folder) == special_type) { + special_folder = folder; + break; /* Leaving a ref for the special_folder return value. */ + } - g_object_unref (G_OBJECT(folder)); + g_object_unref (G_OBJECT(folder)); + } + tny_iterator_next (iter); } @@ -809,17 +815,19 @@ recurse_folders (TnyFolderStore *store, TnyFolder *folder; folder = TNY_FOLDER (tny_iterator_get_current (iter)); + if (folder) { + if (helper->task == TASK_GET_ALL_COUNT) + helper->sum += tny_folder_get_all_count (folder); - if (helper->task == TASK_GET_ALL_COUNT) - helper->sum += tny_folder_get_all_count (folder); + if (helper->task == TASK_GET_LOCAL_SIZE) + helper->sum += tny_folder_get_local_size (folder); - if (helper->task == TASK_GET_LOCAL_SIZE) - helper->sum += tny_folder_get_local_size (folder); + if (TNY_IS_FOLDER_STORE (folder)) + recurse_folders (TNY_FOLDER_STORE (folder), query, helper); - if (TNY_IS_FOLDER_STORE (folder)) - recurse_folders (TNY_FOLDER_STORE (folder), query, helper); + g_object_unref (folder); + } - g_object_unref (folder); tny_iterator_next (iter); } g_object_unref (G_OBJECT (iter));