merge of '6e023ceb6fa8bba9869db2848dbc65af1e57bcc5'

Mon, 31 May 2010 06:58:02 +0000

author
Elliott Sales de Andrade <qulogic@pidgin.im>
date
Mon, 31 May 2010 06:58:02 +0000
changeset 30397
9cff79eeef0d
parent 30396
6e023ceb6fa8 (current diff)
parent 30394
1f73e5b91bec (diff)
child 30398
2daa6938a849

merge of '6e023ceb6fa8bba9869db2848dbc65af1e57bcc5'
and '1f73e5b91bec14e4c03c1d9d67cce7dfe3129c2b'

--- a/libpurple/protocols/msn/notification.c	Mon May 31 03:20:12 2010 +0000
+++ b/libpurple/protocols/msn/notification.c	Mon May 31 06:58:02 2010 +0000
@@ -1572,7 +1572,7 @@
 	PurpleAccount *account;
 	MsnUser *user;
 	const char *passport;
-	char *psm_str, *str;
+	char *str;
 
 	session = cmdproc->session;
 	account = session->account;
@@ -1580,7 +1580,7 @@
 	passport = cmd->params[0];
 	user = msn_userlist_find_user(session->userlist, passport);
 	if (user == NULL) {
-		char *str = g_strndup(payload, len);
+		str = g_strndup(payload, len);
 		purple_debug_info("msn", "unknown user %s, payload is %s\n",
 			passport, str);
 		g_free(str);
@@ -1595,12 +1595,13 @@
 		user->extinfo->media_album = NULL;
 		user->extinfo->media_artist = NULL;
 		user->extinfo->media_title = NULL;
+		user->extinfo->media_type = CURRENT_MEDIA_UNKNOWN;
 	}
 
 	if (len != 0) {
-		psm_str = msn_get_psm(cmd->payload,len);
-		msn_user_set_statusline(user, psm_str);
-		g_free(psm_str);
+		str = msn_get_psm(cmd->payload,len);
+		msn_user_set_statusline(user, str);
+		g_free(str);
 
 		str = msn_get_currentmedia(cmd->payload, len);
 		parse_currentmedia(user, str);
@@ -1609,6 +1610,11 @@
 		msn_user_set_statusline(user, NULL);
 	}
 
+	if (user->extinfo && user->extinfo->media_type == CURRENT_MEDIA_UNKNOWN) {
+		g_free(user->extinfo);
+		user->extinfo = NULL;
+	}
+
 	msn_user_update(user);
 }
 

mercurial