aboutsummaryrefslogtreecommitdiffstats
path: root/mail/component-factory.c
diff options
context:
space:
mode:
Diffstat (limited to 'mail/component-factory.c')
-rw-r--r--mail/component-factory.c30
1 files changed, 15 insertions, 15 deletions
diff --git a/mail/component-factory.c b/mail/component-factory.c
index 5c82a14ffb..dfc1e97f17 100644
--- a/mail/component-factory.c
+++ b/mail/component-factory.c
@@ -1261,8 +1261,11 @@ storage_remove_folder (EvolutionStorage *storage,
root = camel_store_get_folder_info (store, name, CAMEL_STORE_FOLDER_INFO_FAST |
CAMEL_STORE_FOLDER_INFO_RECURSIVE, &ex);
camel_url_free (url);
- if (!root || camel_exception_is_set (&ex))
- goto exception;
+ if (!root || camel_exception_is_set (&ex)) {
+ notify_listener_exception (listener, &ex);
+ camel_exception_clear (&ex);
+ return;
+ }
/* walk the tree until we find the particular child folder we want to delete */
fi = root;
@@ -1272,23 +1275,20 @@ storage_remove_folder (EvolutionStorage *storage,
fi = fi->child;
}
- if (fi != NULL) {
- storage_remove_folder_recursive (storage, store, fi, &ex);
- if (camel_exception_is_set (&ex))
- goto exception;
- } else {
+ if (!fi) {
notify_listener (listener, GNOME_Evolution_Storage_INVALID_URI);
+ camel_store_free_folder_info (store, root);
+ return;
}
+ storage_remove_folder_recursive (storage, store, fi, &ex);
camel_store_free_folder_info (store, root);
-
- notify_listener (listener, GNOME_Evolution_Storage_OK);
- return;
-
-exception:
- notify_listener_exception(listener, &ex);
- camel_exception_clear (&ex);
- camel_store_free_folder_info (store, root);
+ if (camel_exception_is_set (&ex)) {
+ notify_listener_exception (listener, &ex);
+ camel_exception_clear (&ex);
+ } else {
+ notify_listener (listener, GNOME_Evolution_Storage_OK);
+ }
}
static void