libpurple/protocols/jabber/jingle/iceudp.c

branch
release-2.x.y
changeset 39733
f5fa7b43b8ed
parent 39732
e4ad09f72edf
--- a/libpurple/protocols/jabber/jingle/iceudp.c	Sat Jul 20 21:34:20 2019 +0200
+++ b/libpurple/protocols/jabber/jingle/iceudp.c	Sat Jul 27 21:34:10 2019 +0200
@@ -194,13 +194,22 @@
 jingle_iceudp_finalize (GObject *iceudp)
 {
 	JingleIceUdpPrivate *priv = JINGLE_ICEUDP_GET_PRIVATE(iceudp);
+	GList *iter;
 
 	purple_debug_info("jingle","jingle_iceudp_finalize\n");
 
-	g_list_free_full(priv->local_candidates,
-			(GDestroyNotify)jingle_iceudp_candidate_free);
-	g_list_free_full(priv->remote_candidates,
-			(GDestroyNotify)jingle_iceudp_candidate_free);
+	iter = priv->local_candidates;
+	while (iter) {
+		JingleIceUdpCandidate *c = iter->data;
+		g_boxed_free(JINGLE_TYPE_ICEUDP_CANDIDATE, c);
+		iter = g_list_delete_link(iter, iter);
+	}
+	iter = priv->remote_candidates;
+	while (iter) {
+		JingleIceUdpCandidate *c = iter->data;
+		g_boxed_free(JINGLE_TYPE_ICEUDP_CANDIDATE, c);
+		iter = g_list_delete_link(iter, iter);
+	}
 
 	priv->local_candidates = NULL;
 	priv->remote_candidates = NULL;

mercurial