From: Frederic Crozat Date: Mon, 10 Aug 2009 11:36:51 +0000 (+0200) Subject: [libply] Fix message list memleaks X-Git-Tag: 0.7.0~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=579419b01e6bdfdf97aada45df10bad1ef20c022;p=thirdparty%2Fplymouth.git [libply] Fix message list memleaks --- 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; }