* Fixes NB#57328
authorSergio Villar Senin <svillar@igalia.com>
Wed, 23 May 2007 07:30:54 +0000 (07:30 +0000)
committerSergio Villar Senin <svillar@igalia.com>
Wed, 23 May 2007 07:30:54 +0000 (07:30 +0000)
* Fixed a memory leak

pmo-trunk-r1960

src/modest-mail-operation.c
src/modest-ui-actions.c

index 760a3df..c118846 100644 (file)
@@ -1498,27 +1498,23 @@ modest_mail_operation_xfer_msgs (ModestMailOperation *self,
        g_return_if_fail (TNY_IS_LIST (headers));
        g_return_if_fail (TNY_IS_FOLDER (folder));
 
-       /* Get folder rules */
-       rules = modest_tny_folder_get_rules (TNY_FOLDER (folder));
+       priv = MODEST_MAIL_OPERATION_GET_PRIVATE(self);
+       priv->total = 1;
+       priv->done = 0;
+       priv->status = MODEST_MAIL_OPERATION_STATUS_IN_PROGRESS;
 
        /* Apply folder rules */
+       rules = modest_tny_folder_get_rules (TNY_FOLDER (folder));
+
        if (rules & MODEST_FOLDER_RULES_FOLDER_NON_WRITEABLE) {
                g_set_error (&(priv->error), MODEST_MAIL_OPERATION_ERROR,
                             MODEST_MAIL_OPERATION_ERROR_FOLDER_RULES,
                             _("FIXME: folder does not accept msgs"));
                /* Notify the queue */
                modest_mail_operation_notify_end (self);
-
-               g_object_unref (headers);
-               g_object_unref (folder);
                return;
        }
 
-       priv = MODEST_MAIL_OPERATION_GET_PRIVATE(self);
-       priv->total = 1;
-       priv->done = 0;
-       priv->status = MODEST_MAIL_OPERATION_STATUS_IN_PROGRESS;
-
        /* Create the helper */
        helper = g_slice_new0 (XFerMsgAsyncHelper);
        helper->mail_op = g_object_ref(self);
index f454815..52a3121 100644 (file)
@@ -2421,6 +2421,7 @@ msgs_move_to_confirmation (GtkWindow *win,
                        response = modest_platform_run_confirmation_dialog (GTK_WINDOW (win),
                                                                            (const gchar *) message);
                }
+               g_object_unref (src_folder);
        }
        return response;
 }