diff pidgin/gtkconv.c @ 18646:05cab350d1fb

Fix memory leak by freeing the list returned by gtk_container_get_children.
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Fri, 27 Jul 2007 10:44:11 +0000
parents e47ff6610fc7
children 2848d536ac7e
line wrap: on
line diff
--- a/pidgin/gtkconv.c	Wed Jul 25 21:01:29 2007 +0000
+++ b/pidgin/gtkconv.c	Fri Jul 27 10:44:11 2007 +0000
@@ -2975,7 +2975,7 @@
 	for (list = gtk_container_get_children(GTK_CONTAINER(menu)); list; )
 	{
 		GtkWidget *w = list->data;
-		list = list->next;
+		list = g_list_delete_link(list, list);
 		gtk_widget_destroy(w);
 	}
 
@@ -2993,6 +2993,10 @@
 		gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
 		gtk_widget_set_sensitive(item, FALSE);
 	}
+	else
+	{
+		g_list_free(list);
+	}
 
 	gtk_widget_show_all(menu);
 }
@@ -3373,7 +3377,7 @@
 
 	for (child = gtk_container_get_children(GTK_CONTAINER(menu));
 		 child != NULL;
-		 child = child->next) {
+		 child = g_list_delete_link(child, child)) {
 
 		GtkWidget *item = child->data;
 		PurpleBuddy *item_buddy;