From 0aed9d57326faea1ed662916e9d4f67b11d13184 Mon Sep 17 00:00:00 2001 From: HanzZ Date: Wed, 5 Oct 2011 22:52:34 +0200 Subject: [PATCH] remove ft timer on xfer destruction --- backends/libpurple/main.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/backends/libpurple/main.cpp b/backends/libpurple/main.cpp index cc6052c3..31ebf64d 100644 --- a/backends/libpurple/main.cpp +++ b/backends/libpurple/main.cpp @@ -1361,6 +1361,9 @@ static void XferDestroyed(PurpleXfer *xfer) { if (ftdata && ftdata->timer) { purple_timeout_remove(ftdata->timer); } + if (ftdata) { + np->m_xfers.erase(ftdata->id); + } } static void xferCanceled(PurpleXfer *xfer) { @@ -1389,7 +1392,10 @@ static void fileSendStart(PurpleXfer *xfer) { static void fileRecvStart(PurpleXfer *xfer) { // FiletransferRepeater *repeater = (FiletransferRepeater *) xfer->ui_data; // repeater->fileRecvStart(); - purple_timeout_add(1, ft_ui_ready, xfer); + FTData *ftData = (FTData *) xfer->ui_data; + if (ftData->timer == 0) { + ftData->timer = purple_timeout_add(1, ft_ui_ready, xfer); + } } static void newXfer(PurpleXfer *xfer) {