From 579419b01e6bdfdf97aada45df10bad1ef20c022 Mon Sep 17 00:00:00 2001 From: Frederic Crozat Date: Mon, 10 Aug 2009 13:36:51 +0200 Subject: [PATCH] [libply] Fix message list memleaks --- src/libply/ply-progress.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/libply/ply-progress.c b/src/libply/ply-progress.c index f8a84ab8..bd7567d9 100644 --- a/src/libply/ply-progress.c +++ b/src/libply/ply-progress.c @@ -90,6 +90,32 @@ ply_progress_new (void) void ply_progress_free (ply_progress_t* progress) { + ply_list_node_t *node; + node = ply_list_get_first_node (progress->current_message_list); + + while (node) + { + ply_list_node_t *next_node; + ply_progress_message_t *message = ply_list_node_get_data (node); + next_node = ply_list_get_next_node (progress->current_message_list, node); + + free (message->string); + node = next_node; + } + ply_list_free (progress->current_message_list); + + node = ply_list_get_first_node (progress->previous_message_list); + + while (node) + { + ply_list_node_t *next_node; + ply_progress_message_t *message = ply_list_node_get_data (node); + next_node = ply_list_get_next_node (progress->previous_message_list, node); + + free (message->string); + node = next_node; + } + ply_list_free (progress->previous_message_list); free(progress); return; }