X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-mail-operation-queue.c;h=68506d942f11dac54424457e605ee80a0e3b9324;hp=352c26f02ba9ea98e6364074f1824f0644a3f86f;hb=08f947f605fb8119109027ca691b9d83c4c556d8;hpb=18d3416b4997e728dc69001489d002d230f0aec7 diff --git a/src/modest-mail-operation-queue.c b/src/modest-mail-operation-queue.c index 352c26f..68506d9 100644 --- a/src/modest-mail-operation-queue.c +++ b/src/modest-mail-operation-queue.c @@ -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, ""); - else { + if (len == 0) { + gchar *copy; + copy = str; + str = g_strdup_printf ("%s\n%s", copy, ""); + 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);