]> git.ipfire.org Git - thirdparty/plymouth.git/commitdiff
[libply] Fix message list memleaks
authorFrederic Crozat <fcrozat@mandriva.com>
Mon, 10 Aug 2009 11:36:51 +0000 (13:36 +0200)
committerFrederic Crozat <fcrozat@mandriva.com>
Tue, 11 Aug 2009 15:25:41 +0000 (17:25 +0200)
src/libply/ply-progress.c

index f8a84ab83cc7d1a00306a1d17188d29fcf288a6b..bd7567d95695842cfdc3c40d5e37a362254585a6 100644 (file)
@@ -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;
 }