* check for a valid foldername
[modest] / src / modest-mail-operation-queue.c
index 600438b..7bf680b 100644 (file)
@@ -257,9 +257,9 @@ modest_mail_operation_queue_remove (ModestMailOperationQueue *self,
                   prevent possible application crashes. It's useful
                   also for detecting mail operations with invalid
                   status and error handling */
-               if (modest_mail_operation_get_error (mail_op) != NULL)
+               if (modest_mail_operation_get_error (mail_op) != NULL) {
                        modest_mail_operation_execute_error_handler (mail_op);
-               else {
+               } else {
                        if (status == MODEST_MAIL_OPERATION_STATUS_CANCELED) 
                                g_warning ("%s: operation canceled \n", __FUNCTION__);
                        else
@@ -316,15 +316,18 @@ modest_mail_operation_queue_cancel (ModestMailOperationQueue *self,
 static void
 on_cancel_all_foreach (gpointer op, gpointer list)
 {
-       *((GSList**)list) = g_slist_prepend (*((GSList**)list), MODEST_MAIL_OPERATION (op));
+       GSList **new_list;
+
+       new_list = (GSList**) list;
+       *new_list = g_slist_prepend (*new_list, MODEST_MAIL_OPERATION (op));
 }
 
 void 
 modest_mail_operation_queue_cancel_all (ModestMailOperationQueue *self)
 {
        ModestMailOperationQueuePrivate *priv;
-       GSList* operations_to_cancel;
-       GSList* cur;
+       GSList* operations_to_cancel = NULL;
+       GSList* cur = NULL;
 
        g_return_if_fail (MODEST_IS_MAIL_OPERATION_QUEUE (self));
 
@@ -338,13 +341,14 @@ modest_mail_operation_queue_cancel_all (ModestMailOperationQueue *self)
        g_mutex_lock (priv->queue_lock);
        g_queue_foreach (priv->op_queue, (GFunc) on_cancel_all_foreach, &operations_to_cancel);
        g_mutex_unlock (priv->queue_lock);
-
+       
        /* TODO: Reverse the list, to remove operations in order? */
 
        for(cur = operations_to_cancel; cur != NULL; cur = cur->next) {
-               /* This triggers a progress_changed signal in which we remove
-                * the operation from the queue. */
-               modest_mail_operation_cancel (MODEST_MAIL_OPERATION (cur->data));
+               if (!MODEST_IS_MAIL_OPERATION(cur->data))
+                       g_printerr ("modest: cur->data is not a valid mail operation\n");
+               else
+                       modest_mail_operation_cancel (MODEST_MAIL_OPERATION (cur->data));
        }
 
        g_slist_free(operations_to_cancel);