diff libpurple/media/backend-fs2.c @ 30439:1feb2baeac2d

Fix some media code leaks. Fixes #12349. committer: Elliott Sales de Andrade <qulogic@pidgin.im>
author jakub.adam@ktknet.cz
date Tue, 24 Aug 2010 04:45:25 +0000
parents 351d07aefb09
children 797c03de8fa9
line wrap: on
line diff
--- a/libpurple/media/backend-fs2.c	Tue Aug 24 04:42:41 2010 +0000
+++ b/libpurple/media/backend-fs2.c	Tue Aug 24 04:45:25 2010 +0000
@@ -208,11 +208,7 @@
 	}
 
 	if (priv->participants) {
-		GList *participants =
-				g_hash_table_get_values(priv->participants);
-		for (; participants; participants = g_list_delete_link(
-				participants, participants))
-			g_object_unref(participants->data);
+		g_hash_table_destroy(priv->participants);
 		priv->participants = NULL;
 	}
 
@@ -1425,7 +1421,8 @@
 	if (!priv->sessions) {
 		purple_debug_info("backend-fs2",
 				"Creating hash table for sessions\n");
-		priv->sessions = g_hash_table_new(g_str_hash, g_str_equal);
+		priv->sessions = g_hash_table_new_full(g_str_hash, g_str_equal,
+		                                       g_free, NULL);
 	}
 
 	g_hash_table_insert(priv->sessions, g_strdup(session->id), session);
@@ -1461,7 +1458,7 @@
 		purple_debug_info("backend-fs2",
 				"Creating hash table for participants\n");
 		priv->participants = g_hash_table_new_full(g_str_hash,
-				g_str_equal, g_free, NULL);
+				g_str_equal, g_free, g_object_unref);
 	}
 
 	g_hash_table_insert(priv->participants, g_strdup(name), participant);