changeset 30874:cae0dd35d16a

merge of '514b763ddb36f2f1492895fc413c7774e3b56b9d' and '54e89ae24cccf07b4297fb599bd7eafade1f5b84'
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Tue, 24 Aug 2010 05:07:48 +0000
parents 6c59e8ad1261 (diff) cbe5e9202925 (current diff)
children 797c03de8fa9
files
diffstat 6 files changed, 16 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/COPYRIGHT	Tue Aug 24 01:02:55 2010 +0000
+++ b/COPYRIGHT	Tue Aug 24 05:07:48 2010 +0000
@@ -18,6 +18,7 @@
 Copyright (C) 1998-2009 by the following:
 
 Saleem Abdulrasool
+Jakub Adam
 Dave Ahlswede
 Manuel Amador
 Matt Amato
--- a/libpurple/media.c	Tue Aug 24 01:02:55 2010 +0000
+++ b/libpurple/media.c	Tue Aug 24 05:07:48 2010 +0000
@@ -515,7 +515,8 @@
 
 	if (!media->priv->sessions) {
 		purple_debug_info("media", "Creating hash table for sessions\n");
-		media->priv->sessions = g_hash_table_new(g_str_hash, g_str_equal);
+		media->priv->sessions = g_hash_table_new_full(g_str_hash, g_str_equal,
+		                                              g_free, NULL);
 	}
 	g_hash_table_insert(media->priv->sessions, g_strdup(session->id), session);
 }
--- a/libpurple/media/backend-fs2.c	Tue Aug 24 01:02:55 2010 +0000
+++ b/libpurple/media/backend-fs2.c	Tue Aug 24 05:07:48 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);
--- a/libpurple/media/codec.c	Tue Aug 24 01:02:55 2010 +0000
+++ b/libpurple/media/codec.c	Tue Aug 24 05:07:48 2010 +0000
@@ -83,9 +83,11 @@
 			PURPLE_MEDIA_CODEC_GET_PRIVATE(info);
 	g_free(priv->encoding_name);
 	for (; priv->optional_params; priv->optional_params =
-			g_list_delete_link(priv->optional_params,
-			priv->optional_params)) {
-		g_free(priv->optional_params->data);
+			g_list_delete_link(priv->optional_params, priv->optional_params)) {
+		PurpleKeyValuePair *param = priv->optional_params->data;
+		g_free(param->key);
+		g_free(param->value);
+		g_free(param);
 	}
 }
 
@@ -302,10 +304,10 @@
 
 	g_free(param->key);
 	g_free(param->value);
-	g_free(param);
 
 	priv->optional_params =
 			g_list_remove(priv->optional_params, param);
+	g_free(param);
 }
 
 PurpleKeyValuePair *
--- a/libpurple/media/codec.h	Tue Aug 24 01:02:55 2010 +0000
+++ b/libpurple/media/codec.h	Tue Aug 24 05:07:48 2010 +0000
@@ -121,7 +121,8 @@
  *
  * @param The codec to get the optional parameters from.
  *
- * @return The list of optional parameters.
+ * @return The list of optional parameters. The list is owned by the codec and
+ *         should not be freed.
  *
  * @since 2.6.0
  */
--- a/libpurple/protocols/msn/session.c	Tue Aug 24 01:02:55 2010 +0000
+++ b/libpurple/protocols/msn/session.c	Tue Aug 24 05:07:48 2010 +0000
@@ -283,7 +283,7 @@
 void
 msn_session_activate_login_timeout(MsnSession *session)
 {
-	if (!session->logged_in) {
+	if (!session->logged_in && session->connected) {
 		session->login_timeout =
 			purple_timeout_add_seconds(MSN_LOGIN_FQY_TIMEOUT,
 			                           msn_login_timeout_cb, session);