Wed, 28 Oct 2009 18:16:59 +0000
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); }