changeset 31410:b1022aa66b8a

Call msn_transaction_destroy from msn_cmdproc_send_trans. This way, it always owns in some way the transaction after being called.
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Sat, 27 Nov 2010 07:08:24 +0000
parents cc32d5f81523
children 5e6997ae07e2
files libpurple/protocols/msn/cmdproc.c libpurple/protocols/msn/msn.c libpurple/protocols/msn/notification.c libpurple/protocols/msn/switchboard.c
diffstat 4 files changed, 3 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/libpurple/protocols/msn/cmdproc.c	Wed Nov 24 05:57:48 2010 +0000
+++ b/libpurple/protocols/msn/cmdproc.c	Sat Nov 27 07:08:24 2010 +0000
@@ -122,7 +122,7 @@
 	servconn = cmdproc->servconn;
 
 	if (!servconn->connected) {
-		/* TODO: Need to free trans */
+		msn_transaction_destroy(trans);
 		return;
 	}
 
@@ -156,6 +156,8 @@
 
 	msn_servconn_write(servconn, data, len);
 
+	if (!trans->saveable)
+		msn_transaction_destroy(trans);
 	g_free(data);
 }
 
--- a/libpurple/protocols/msn/msn.c	Wed Nov 24 05:57:48 2010 +0000
+++ b/libpurple/protocols/msn/msn.c	Sat Nov 27 07:08:24 2010 +0000
@@ -2100,7 +2100,6 @@
 		trans = msn_transaction_new(cmdproc, "PNG", NULL);
 		msn_transaction_set_saveable(trans, FALSE);
 		msn_cmdproc_send_trans(cmdproc, trans);
-		msn_transaction_destroy(trans);
 	}
 }
 
--- a/libpurple/protocols/msn/notification.c	Wed Nov 24 05:57:48 2010 +0000
+++ b/libpurple/protocols/msn/notification.c	Sat Nov 27 07:08:24 2010 +0000
@@ -309,7 +309,6 @@
 	trans = msn_transaction_new(notification->cmdproc, "OUT", NULL);
 	msn_transaction_set_saveable(trans, FALSE);
 	msn_cmdproc_send_trans(notification->cmdproc, trans);
-	msn_transaction_destroy(trans);
 
 	msn_notification_disconnect(notification);
 }
--- a/libpurple/protocols/msn/switchboard.c	Wed Nov 24 05:57:48 2010 +0000
+++ b/libpurple/protocols/msn/switchboard.c	Sat Nov 27 07:08:24 2010 +0000
@@ -1147,7 +1147,6 @@
 		trans = msn_transaction_new(cmdproc, "OUT", NULL);
 		msn_transaction_set_saveable(trans, FALSE);
 		msn_cmdproc_send_trans(cmdproc, trans);
-		msn_transaction_destroy(trans);
 
 		msn_switchboard_destroy(swboard);
 	}