summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElliott Sales de Andrade <qulogic@pidgin.im>2010-05-17 08:45:46 +0000
committerElliott Sales de Andrade <qulogic@pidgin.im>2010-05-17 08:45:46 +0000
commitad8541cf862685d1f8f2bbde189f41ad605a687a (patch)
tree163962cc5869c3fb292acacc5735f845db20fe5e
parenta785f4e35e65da5863457ffe6cb75c20d5cbe708 (diff)
downloadpidgin-ad8541cf862685d1f8f2bbde189f41ad605a687a.tar.gz
Ref the slplink before destroying the DC, or we might lose our slpcall.
-rw-r--r--libpurple/protocols/msn/directconn.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/libpurple/protocols/msn/directconn.c b/libpurple/protocols/msn/directconn.c
index 81d24d9321..aea4864b7d 100644
--- a/libpurple/protocols/msn/directconn.c
+++ b/libpurple/protocols/msn/directconn.c
@@ -316,6 +316,7 @@ msn_dc_send_ok(MsnDirectConn *dc)
void
msn_dc_fallback_to_p2p(MsnDirectConn *dc)
{
+ MsnSlpLink *slplink;
MsnSlpCall *slpcall;
purple_debug_info("msn", "msn_dc_try_fallback_to_p2p %p\n", dc);
@@ -323,11 +324,13 @@ msn_dc_fallback_to_p2p(MsnDirectConn *dc)
g_return_if_fail(dc != NULL);
slpcall = dc->slpcall;
+ slplink = msn_slplink_ref(dc->slplink);
msn_dc_destroy(dc);
if (slpcall)
msn_slpcall_session_init(slpcall);
+ msn_slplink_unref(slplink);
}
static void