Free participants properly in purple_media_end. cpw.maiku.media_refactor

Wed, 28 Oct 2009 18:16:59 +0000

author
Michael Ruprecht <maiku@pidgin.im>
date
Wed, 28 Oct 2009 18:16:59 +0000
branch
cpw.maiku.media_refactor
changeset 29616
a1de7592cbeb
parent 29615
0aca2e93ae36
child 29617
3cc3d60ee573

Free participants properly in purple_media_end.

libpurple/media/media.c file | annotate | diff | comparison | revisions
--- a/libpurple/media/media.c	Wed Oct 28 18:07:27 2009 +0000
+++ b/libpurple/media/media.c	Wed Oct 28 18:16:59 2009 +0000
@@ -707,11 +707,19 @@
 	for (; participants; participants =
 			g_list_delete_link(participants, participants)) {
 		gchar *participant = participants->data;
-		
+		GList *link = g_list_find_custom(media->priv->participants,
+				participant, (GCompareFunc)strcmp);
+
 		g_signal_emit(media, purple_media_signals[STATE_CHANGED],
 				0, PURPLE_MEDIA_STATE_END,
 				NULL, participant);
 
+		if (link != NULL) {
+			g_free(link->data);
+			media->priv->participants = g_list_delete_link(
+					media->priv->participants, link);
+		}
+
 		g_free(participant);
 	}
 

mercurial