# HG changeset patch # User Elliott Sales de Andrade # Date 1290841704 0 # Node ID b1022aa66b8a8718cde6dd7f13e2b69d128479fe # Parent cc32d5f815237e597415c3ff929fa5e44fcf4d55 Call msn_transaction_destroy from msn_cmdproc_send_trans. This way, it always owns in some way the transaction after being called. diff -r cc32d5f81523 -r b1022aa66b8a libpurple/protocols/msn/cmdproc.c --- 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); } diff -r cc32d5f81523 -r b1022aa66b8a libpurple/protocols/msn/msn.c --- 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); } } diff -r cc32d5f81523 -r b1022aa66b8a libpurple/protocols/msn/notification.c --- 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); } diff -r cc32d5f81523 -r b1022aa66b8a libpurple/protocols/msn/switchboard.c --- 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); }