Show folders with non read messages with active text color
[modest] / src / modest-mail-operation-queue.c
index 352c26f..68506d9 100644 (file)
@@ -453,14 +453,15 @@ static void
 on_find_by_source_foreach (gpointer op, gpointer data)
 {
        FindBySourceInfo *info = (FindBySourceInfo*) data;
-       GObject *source;
+       GObject *source = NULL;
 
        source = modest_mail_operation_get_source (MODEST_MAIL_OPERATION (op));
-       if ( info->source == source) {
+       if (info->source == source) {
                g_object_ref (G_OBJECT (op));
                *(info->new_list) = g_slist_prepend (*(info->new_list), MODEST_MAIL_OPERATION (op));
        }
-       g_object_unref (source);
+       if (source)
+               g_object_unref (source);
 }
 
 GSList*
@@ -469,13 +470,14 @@ modest_mail_operation_queue_get_by_source (ModestMailOperationQueue *self,
 {
        ModestMailOperationQueuePrivate *priv;
        GSList* found_operations= NULL;
-       FindBySourceInfo *info = g_new0 (FindBySourceInfo, 1);
+       FindBySourceInfo *info;
 
        g_return_val_if_fail (MODEST_IS_MAIL_OPERATION_QUEUE (self), NULL);
        g_return_val_if_fail (source != NULL, NULL);
 
        priv = MODEST_MAIL_OPERATION_QUEUE_GET_PRIVATE(self);
 
+       info = g_new0 (FindBySourceInfo, 1);
        info->new_list = &found_operations;
        info->source = source;
 
@@ -491,26 +493,31 @@ modest_mail_operation_queue_get_by_source (ModestMailOperationQueue *self,
 static void
 accumulate_mail_op_strings (ModestMailOperation *op, gchar **str)
 {
-       *str = g_strdup_printf ("%s\n%s", *str, modest_mail_operation_to_string (op));
+       gchar *mail_op_to_str = modest_mail_operation_to_string (op);
+       *str = g_strdup_printf ("%s\n%s", *str, mail_op_to_str);
+       g_free (mail_op_to_str);
 }
 
 
 gchar*
 modest_mail_operation_queue_to_string (ModestMailOperationQueue *self)
 {
-       gchar *str;
+       gchar *str = NULL;
        guint len;
        ModestMailOperationQueuePrivate *priv;
-       
+
        g_return_val_if_fail (MODEST_IS_MAIL_OPERATION_QUEUE (self), NULL);
-       
+
        priv = MODEST_MAIL_OPERATION_QUEUE_GET_PRIVATE(self);
 
        len = g_queue_get_length (priv->op_queue);
        str = g_strdup_printf ("mail operation queue (%02d)\n-------------------------", len);
-       if (len == 0)
-               str = g_strdup_printf ("%s\n%s", str, "<empty>");
-       else {
+       if (len == 0) {
+               gchar *copy;
+               copy = str;
+               str = g_strdup_printf ("%s\n%s", copy, "<empty>");
+               g_free (copy);
+       } else {
                g_mutex_lock (priv->queue_lock);
                g_queue_foreach (priv->op_queue, (GFunc)accumulate_mail_op_strings, &str);
                g_mutex_unlock (priv->queue_lock);