diff options
| author | Tobias Markmann <tm@ayena.de> | 2015-10-06 07:30:56 (GMT) | 
|---|---|---|
| committer | Tobias Markmann <tm@ayena.de> | 2015-10-14 14:35:55 (GMT) | 
| commit | b00c84574fc730eeeabb57df1f17b54855218193 (patch) | |
| tree | bbc05725a01a12b832065beb9f5eb20d71cb3178 /Swiften/FileTransfer | |
| parent | a30c7ad74fc830dbd10b9560054f39063b5e8372 (diff) | |
| download | swift-b00c84574fc730eeeabb57df1f17b54855218193.zip swift-b00c84574fc730eeeabb57df1f17b54855218193.tar.bz2 | |
Fix memory leak warnings by Valgrind/LSAN
Test-Information:
Both Valgrind and clang's leak sanitizer report a lot leaks
on the FileTransferTest. With this commit it the stack traces
related to the fixed leaks are gone.
Change-Id: Idae9a81bcd8d97576d3f1469bf64490e0bfa7d55
Diffstat (limited to 'Swiften/FileTransfer')
| -rw-r--r-- | Swiften/FileTransfer/DefaultFileTransferTransporter.cpp | 5 | ||||
| -rw-r--r-- | Swiften/FileTransfer/SOCKS5BytestreamClientSession.cpp | 2 | ||||
| -rw-r--r-- | Swiften/FileTransfer/SOCKS5BytestreamProxiesManager.cpp | 1 | 
3 files changed, 8 insertions, 0 deletions
| diff --git a/Swiften/FileTransfer/DefaultFileTransferTransporter.cpp b/Swiften/FileTransfer/DefaultFileTransferTransporter.cpp index dffc39b..ca29898 100644 --- a/Swiften/FileTransfer/DefaultFileTransferTransporter.cpp +++ b/Swiften/FileTransfer/DefaultFileTransferTransporter.cpp | |||
| @@ -71,11 +71,16 @@ DefaultFileTransferTransporter::DefaultFileTransferTransporter( | |||
| 71 | boost::bind(&DefaultFileTransferTransporter::handleRemoteCandidateSelectFinished, this, _1, _2)); | 71 | boost::bind(&DefaultFileTransferTransporter::handleRemoteCandidateSelectFinished, this, _1, _2)); | 
| 72 | } | 72 | } | 
| 73 | 73 | ||
| 74 | DefaultFileTransferTransporter::~DefaultFileTransferTransporter() { | 74 | DefaultFileTransferTransporter::~DefaultFileTransferTransporter() { | 
| 75 | stopGeneratingLocalCandidates(); | 75 | stopGeneratingLocalCandidates(); | 
| 76 | remoteCandidateSelector->onCandidateSelectFinished.disconnect( | ||
| 77 | boost::bind(&DefaultFileTransferTransporter::handleRemoteCandidateSelectFinished, this, _1, _2)); | ||
| 76 | delete remoteCandidateSelector; | 78 | delete remoteCandidateSelector; | 
| 79 | |||
| 80 | localCandidateGenerator->onLocalTransportCandidatesGenerated.disconnect( | ||
| 81 | boost::bind(&DefaultFileTransferTransporter::handleLocalCandidatesGenerated, this, _1)); | ||
| 77 | delete localCandidateGenerator; | 82 | delete localCandidateGenerator; | 
| 78 | } | 83 | } | 
| 79 | 84 | ||
| 80 | void DefaultFileTransferTransporter::initialize() { | 85 | void DefaultFileTransferTransporter::initialize() { | 
| 81 | s5bSessionID = s5bRegistry->generateSessionID(); | 86 | s5bSessionID = s5bRegistry->generateSessionID(); | 
| diff --git a/Swiften/FileTransfer/SOCKS5BytestreamClientSession.cpp b/Swiften/FileTransfer/SOCKS5BytestreamClientSession.cpp index 04d5d86..a38501b 100644 --- a/Swiften/FileTransfer/SOCKS5BytestreamClientSession.cpp +++ b/Swiften/FileTransfer/SOCKS5BytestreamClientSession.cpp | |||
| @@ -40,10 +40,12 @@ SOCKS5BytestreamClientSession::SOCKS5BytestreamClientSession( | |||
| 40 | weFailedTimeout->onTick.connect( | 40 | weFailedTimeout->onTick.connect( | 
| 41 | boost::bind(&SOCKS5BytestreamClientSession::handleWeFailedTimeout, this)); | 41 | boost::bind(&SOCKS5BytestreamClientSession::handleWeFailedTimeout, this)); | 
| 42 | } | 42 | } | 
| 43 | 43 | ||
| 44 | SOCKS5BytestreamClientSession::~SOCKS5BytestreamClientSession() { | 44 | SOCKS5BytestreamClientSession::~SOCKS5BytestreamClientSession() { | 
| 45 | weFailedTimeout->onTick.disconnect( | ||
| 46 | boost::bind(&SOCKS5BytestreamClientSession::handleWeFailedTimeout, this)); | ||
| 45 | weFailedTimeout->stop(); | 47 | weFailedTimeout->stop(); | 
| 46 | } | 48 | } | 
| 47 | 49 | ||
| 48 | void SOCKS5BytestreamClientSession::start() { | 50 | void SOCKS5BytestreamClientSession::start() { | 
| 49 | assert(state == Initial); | 51 | assert(state == Initial); | 
| diff --git a/Swiften/FileTransfer/SOCKS5BytestreamProxiesManager.cpp b/Swiften/FileTransfer/SOCKS5BytestreamProxiesManager.cpp index 25a12ea..3221790 100644 --- a/Swiften/FileTransfer/SOCKS5BytestreamProxiesManager.cpp +++ b/Swiften/FileTransfer/SOCKS5BytestreamProxiesManager.cpp | |||
| @@ -111,10 +111,11 @@ boost::shared_ptr<SOCKS5BytestreamClientSession> SOCKS5BytestreamProxiesManager: | |||
| 111 | SOCKS5BytestreamClientSession::ref connection = boost::make_shared<SOCKS5BytestreamClientSession>(connectionFactory_->createConnection(), addressPort, destAddr, timerFactory_); | 111 | SOCKS5BytestreamClientSession::ref connection = boost::make_shared<SOCKS5BytestreamClientSession>(connectionFactory_->createConnection(), addressPort, destAddr, timerFactory_); | 
| 112 | return connection; | 112 | return connection; | 
| 113 | } | 113 | } | 
| 114 | 114 | ||
| 115 | void SOCKS5BytestreamProxiesManager::handleProxiesFound(std::vector<S5BProxyRequest::ref> proxyHosts) { | 115 | void SOCKS5BytestreamProxiesManager::handleProxiesFound(std::vector<S5BProxyRequest::ref> proxyHosts) { | 
| 116 | proxyFinder_->onProxiesFound.disconnect(boost::bind(&SOCKS5BytestreamProxiesManager::handleProxiesFound, this, _1)); | ||
| 116 | foreach(S5BProxyRequest::ref proxy, proxyHosts) { | 117 | foreach(S5BProxyRequest::ref proxy, proxyHosts) { | 
| 117 | if (proxy) { | 118 | if (proxy) { | 
| 118 | if (HostAddress(proxy->getStreamHost().get().host).isValid()) { | 119 | if (HostAddress(proxy->getStreamHost().get().host).isValid()) { | 
| 119 | addS5BProxy(proxy); | 120 | addS5BProxy(proxy); | 
| 120 | onDiscoveredProxiesChanged(); | 121 | onDiscoveredProxiesChanged(); | 
 Swift
 Swift