X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmodest-mail-operation-queue.c;h=db3465fcea1f7c61fd8387ba8620fced5281ad88;hb=dece14f7b4b809b774150979c3748ca77b329863;hp=600438b680512ef9bcd8430548df40bf5eeeaa4f;hpb=75bc955b9e9eb099e08799367eceb4e4aadcf158;p=modest diff --git a/src/modest-mail-operation-queue.c b/src/modest-mail-operation-queue.c index 600438b..db3465f 100644 --- a/src/modest-mail-operation-queue.c +++ b/src/modest-mail-operation-queue.c @@ -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,6 +316,7 @@ modest_mail_operation_queue_cancel (ModestMailOperationQueue *self, static void on_cancel_all_foreach (gpointer op, gpointer list) { + g_return_if_fail (list); *((GSList**)list) = g_slist_prepend (*((GSList**)list), MODEST_MAIL_OPERATION (op)); } @@ -323,8 +324,8 @@ 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 +339,16 @@ 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);