changeset 30133:f5d4d3800e81

merge of '0c5825d5c8cf7e382a744e266bb4c67753d24db4' and '25efd792c3cc52430ed464eaeb331c3ee9fd9ced'
author John Bailey <rekkanoryo@rekkanoryo.org>
date Sun, 30 May 2010 00:46:45 +0000
parents d60313011111 (diff) a84207b9d171 (current diff)
children 85c8e526f499
files
diffstat 2 files changed, 10 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/libpurple/protocols/msn/slplink.c	Sat May 29 18:42:36 2010 +0000
+++ b/libpurple/protocols/msn/slplink.c	Sun May 30 00:46:45 2010 +0000
@@ -209,6 +209,7 @@
 	 * If nothing else is using it then this might cause swboard to be
 	 * destroyed. */
 	if (slplink->slp_calls == NULL && slplink->swboard != NULL) {
+		slplink->swboard->slplinks = g_list_remove(slplink->swboard->slplinks, slplink);
 		msn_switchboard_release(slplink->swboard, MSN_SB_FLAG_FT);
 		slplink->swboard = NULL;
 	}
--- a/libpurple/upnp.c	Sat May 29 18:42:36 2010 +0000
+++ b/libpurple/upnp.c	Sun May 30 00:46:45 2010 +0000
@@ -919,16 +919,20 @@
 	GSList *l;
 
 	/* Remove ar from discovery_callbacks if present; it was inserted after a cb.
-	 * The same cb may be in the list multple times, so be careful to remove the one assocaited with ar. */
-	l  = discovery_callbacks;
+	 * The same cb may be in the list multiple times, so be careful to remove
+	 * the one associated with ar. */
+	l = discovery_callbacks;
 	while (l)
 	{
-		if (l->next && (l->next->data == ar)) {
-			discovery_callbacks = g_slist_delete_link(discovery_callbacks, l->next);
+		GSList *next = l->next;
+
+		if (next && (next->data == ar)) {
+			discovery_callbacks = g_slist_delete_link(discovery_callbacks, next);
+			next = l->next;
 			discovery_callbacks = g_slist_delete_link(discovery_callbacks, l);
 		}
 
-		l = l->next;
+		l = next;
 	}
 
 	if (ar->tima > 0)