First-time quickfix
[modest] / src / modest-mail-operation.c
index 986c5d3..43e893a 100644 (file)
@@ -301,6 +301,8 @@ modest_mail_operation_get_source (ModestMailOperation *self)
 {
        ModestMailOperationPrivate *priv;
 
+       g_return_val_if_fail (self, NULL);
+       
        priv = MODEST_MAIL_OPERATION_GET_PRIVATE(self);
        if (!priv) {
                g_warning ("BUG: %s: priv == NULL", __FUNCTION__);
@@ -869,6 +871,7 @@ set_last_updated_idle (gpointer data)
 static gpointer
 update_account_thread (gpointer thr_user_data)
 {
+       static gboolean first_time = TRUE;
        UpdateAccountInfo *info;
        TnyList *all_folders = NULL;
        GPtrArray *new_headers;
@@ -887,7 +890,7 @@ update_account_thread (gpointer thr_user_data)
         * for POP3, we do a logout-login upon send/receive -- many POP-servers (like Gmail) do not
         * show any updates unless we do that
         */
-       if (TNY_IS_CAMEL_POP_STORE_ACCOUNT(priv->account)) 
+       if (!first_time && TNY_IS_CAMEL_POP_STORE_ACCOUNT(priv->account)) 
                tny_camel_pop_store_account_reconnect (TNY_CAMEL_POP_STORE_ACCOUNT(priv->account));
 
        /* Get all the folders. We can do it synchronously because
@@ -1083,6 +1086,8 @@ update_account_thread (gpointer thr_user_data)
        g_free (info->retrieve_type);
        g_slice_free (UpdateAccountInfo, info);
 
+       first_time = FALSE;
+
        return NULL;
 }
 
@@ -2130,11 +2135,17 @@ modest_mail_operation_notify_end (ModestMailOperation *self)
        ModestMailOperationState *state;
        ModestMailOperationPrivate *priv = NULL;
 
+       g_return_if_fail (self);
+
        priv = MODEST_MAIL_OPERATION_GET_PRIVATE(self);
+
+       if (!priv) {
+               g_warning ("BUG: %s: priv == NULL", __FUNCTION__);
+               return;
+       }
        
        /* Set the account back to not busy */
-       if (priv->account_name)
-       {
+       if (priv->account_name) {
                modest_account_mgr_set_account_busy(modest_runtime_get_account_mgr(), priv->account_name,
                                                                                                                                                                FALSE);
                g_free(priv->account_name);