diff options
| author | Tobias Markmann <tm@ayena.de> | 2015-06-30 07:02:01 (GMT) |
|---|---|---|
| committer | Kevin Smith <kevin.smith@isode.com> | 2015-07-07 19:58:12 (GMT) |
| commit | 799a7ac203dc2576872894dfdd1adb5cdbbacf7b (patch) | |
| tree | e0242decf49222b83674143cf04f61c3dc01bc35 | |
| parent | abd96284e162b3594bd0fc90a5da6b78709dee23 (diff) | |
| download | swift-799a7ac203dc2576872894dfdd1adb5cdbbacf7b.zip swift-799a7ac203dc2576872894dfdd1adb5cdbbacf7b.tar.bz2 | |
Fix memory leaks reported by ASAN
Test-Information:
Tested on Elementary OS with a LLVM/Clang 3.7.0 build. With this patch
the reports for the fixed locations are gone.
Change-Id: I0260fc85ad662335a69ace331f51ebe2f864ef97
6 files changed, 68 insertions, 44 deletions
diff --git a/Swiften/FileTransfer/IncomingJingleFileTransfer.cpp b/Swiften/FileTransfer/IncomingJingleFileTransfer.cpp index 877b2fd..39da46f 100644 --- a/Swiften/FileTransfer/IncomingJingleFileTransfer.cpp +++ b/Swiften/FileTransfer/IncomingJingleFileTransfer.cpp | |||
| @@ -12,20 +12,20 @@ | |||
| 12 | #include <boost/smart_ptr/make_shared.hpp> | 12 | #include <boost/smart_ptr/make_shared.hpp> |
| 13 | 13 | ||
| 14 | #include <Swiften/Base/Log.h> | 14 | #include <Swiften/Base/Log.h> |
| 15 | #include <Swiften/StringCodecs/Base64.h> | ||
| 16 | #include <Swiften/Base/foreach.h> | 15 | #include <Swiften/Base/foreach.h> |
| 17 | #include <Swiften/Jingle/JingleSession.h> | 16 | #include <Swiften/Elements/JingleFileTransferDescription.h> |
| 17 | #include <Swiften/Elements/JingleFileTransferHash.h> | ||
| 18 | #include <Swiften/Elements/JingleIBBTransportPayload.h> | 18 | #include <Swiften/Elements/JingleIBBTransportPayload.h> |
| 19 | #include <Swiften/Elements/JingleS5BTransportPayload.h> | 19 | #include <Swiften/Elements/JingleS5BTransportPayload.h> |
| 20 | #include <Swiften/Elements/JingleFileTransferHash.h> | ||
| 21 | #include <Swiften/FileTransfer/IncrementalBytestreamHashCalculator.h> | ||
| 22 | #include <Swiften/FileTransfer/FileTransferTransporter.h> | 20 | #include <Swiften/FileTransfer/FileTransferTransporter.h> |
| 23 | #include <Swiften/FileTransfer/FileTransferTransporterFactory.h> | 21 | #include <Swiften/FileTransfer/FileTransferTransporterFactory.h> |
| 22 | #include <Swiften/FileTransfer/IncrementalBytestreamHashCalculator.h> | ||
| 23 | #include <Swiften/FileTransfer/TransportSession.h> | ||
| 24 | #include <Swiften/FileTransfer/WriteBytestream.h> | 24 | #include <Swiften/FileTransfer/WriteBytestream.h> |
| 25 | #include <Swiften/Elements/JingleFileTransferDescription.h> | 25 | #include <Swiften/Jingle/JingleSession.h> |
| 26 | #include <Swiften/Network/TimerFactory.h> | 26 | #include <Swiften/Network/TimerFactory.h> |
| 27 | #include <Swiften/Queries/GenericRequest.h> | 27 | #include <Swiften/Queries/GenericRequest.h> |
| 28 | #include <Swiften/FileTransfer/TransportSession.h> | 28 | #include <Swiften/StringCodecs/Base64.h> |
| 29 | 29 | ||
| 30 | using namespace Swift; | 30 | using namespace Swift; |
| 31 | 31 | ||
| @@ -56,6 +56,8 @@ IncomingJingleFileTransfer::IncomingJingleFileTransfer( | |||
| 56 | } | 56 | } |
| 57 | 57 | ||
| 58 | IncomingJingleFileTransfer::~IncomingJingleFileTransfer() { | 58 | IncomingJingleFileTransfer::~IncomingJingleFileTransfer() { |
| 59 | delete hashCalculator; | ||
| 60 | hashCalculator = NULL; | ||
| 59 | } | 61 | } |
| 60 | 62 | ||
| 61 | void IncomingJingleFileTransfer::accept( | 63 | void IncomingJingleFileTransfer::accept( |
| @@ -334,8 +336,7 @@ void IncomingJingleFileTransfer::stopAll() { | |||
| 334 | case Finished: SWIFT_LOG(warning) << "Already finished" << std::endl; break; | 336 | case Finished: SWIFT_LOG(warning) << "Already finished" << std::endl; break; |
| 335 | } | 337 | } |
| 336 | if (state != Initial) { | 338 | if (state != Initial) { |
| 337 | delete transporter; | 339 | removeTransporter(); |
| 338 | transporter = NULL; | ||
| 339 | } | 340 | } |
| 340 | } | 341 | } |
| 341 | 342 | ||
diff --git a/Swiften/FileTransfer/JingleFileTransfer.cpp b/Swiften/FileTransfer/JingleFileTransfer.cpp index dbc4391..cf67a67 100644 --- a/Swiften/FileTransfer/JingleFileTransfer.cpp +++ b/Swiften/FileTransfer/JingleFileTransfer.cpp | |||
| @@ -8,13 +8,13 @@ | |||
| 8 | 8 | ||
| 9 | #include <boost/typeof/typeof.hpp> | 9 | #include <boost/typeof/typeof.hpp> |
| 10 | 10 | ||
| 11 | #include <Swiften/Base/Log.h> | ||
| 11 | #include <Swiften/Base/foreach.h> | 12 | #include <Swiften/Base/foreach.h> |
| 12 | #include <Swiften/JID/JID.h> | ||
| 13 | #include <Swiften/Crypto/CryptoProvider.h> | 13 | #include <Swiften/Crypto/CryptoProvider.h> |
| 14 | #include <Swiften/StringCodecs/Hexify.h> | ||
| 15 | #include <Swiften/Jingle/JingleSession.h> | ||
| 16 | #include <Swiften/FileTransfer/FileTransferTransporter.h> | 14 | #include <Swiften/FileTransfer/FileTransferTransporter.h> |
| 17 | #include <Swiften/Base/Log.h> | 15 | #include <Swiften/JID/JID.h> |
| 16 | #include <Swiften/Jingle/JingleSession.h> | ||
| 17 | #include <Swiften/StringCodecs/Hexify.h> | ||
| 18 | 18 | ||
| 19 | using namespace Swift; | 19 | using namespace Swift; |
| 20 | 20 | ||
| @@ -213,6 +213,7 @@ void JingleFileTransfer::handleTransportInfoReceived( | |||
| 213 | } | 213 | } |
| 214 | 214 | ||
| 215 | void JingleFileTransfer::setTransporter(FileTransferTransporter* transporter) { | 215 | void JingleFileTransfer::setTransporter(FileTransferTransporter* transporter) { |
| 216 | SWIFT_LOG_ASSERT(!this->transporter, error); | ||
| 216 | this->transporter = transporter; | 217 | this->transporter = transporter; |
| 217 | localTransportCandidatesGeneratedConnection = transporter->onLocalCandidatesGenerated.connect( | 218 | localTransportCandidatesGeneratedConnection = transporter->onLocalCandidatesGenerated.connect( |
| 218 | boost::bind(&JingleFileTransfer::handleLocalTransportCandidatesGenerated, this, _1, _2, _3)); | 219 | boost::bind(&JingleFileTransfer::handleLocalTransportCandidatesGenerated, this, _1, _2, _3)); |
| @@ -222,3 +223,13 @@ void JingleFileTransfer::setTransporter(FileTransferTransporter* transporter) { | |||
| 222 | boost::bind(&JingleFileTransfer::handleProxyActivateFinished, this, _1, _2)); | 223 | boost::bind(&JingleFileTransfer::handleProxyActivateFinished, this, _1, _2)); |
| 223 | } | 224 | } |
| 224 | 225 | ||
| 226 | void JingleFileTransfer::removeTransporter() { | ||
| 227 | if (transporter) { | ||
| 228 | localTransportCandidatesGeneratedConnection.release(); | ||
| 229 | remoteTransportCandidateSelectFinishedConnection.release(); | ||
| 230 | proxyActivatedConnection.release(); | ||
| 231 | delete transporter; | ||
| 232 | transporter = NULL; | ||
| 233 | } | ||
| 234 | } | ||
| 235 | |||
diff --git a/Swiften/FileTransfer/JingleFileTransfer.h b/Swiften/FileTransfer/JingleFileTransfer.h index aabeec2..16a55c6 100644 --- a/Swiften/FileTransfer/JingleFileTransfer.h +++ b/Swiften/FileTransfer/JingleFileTransfer.h | |||
| @@ -6,10 +6,11 @@ | |||
| 6 | 6 | ||
| 7 | #pragma once | 7 | #pragma once |
| 8 | 8 | ||
| 9 | #include <Swiften/Base/API.h> | 9 | #include <vector> |
| 10 | 10 | ||
| 11 | #include <boost/shared_ptr.hpp> | 11 | #include <boost/shared_ptr.hpp> |
| 12 | #include <vector> | 12 | |
| 13 | #include <Swiften/Base/API.h> | ||
| 13 | #include <Swiften/Base/boost_bsignals.h> | 14 | #include <Swiften/Base/boost_bsignals.h> |
| 14 | #include <Swiften/Elements/ErrorPayload.h> | 15 | #include <Swiften/Elements/ErrorPayload.h> |
| 15 | #include <Swiften/Elements/JingleS5BTransportPayload.h> | 16 | #include <Swiften/Elements/JingleS5BTransportPayload.h> |
| @@ -64,6 +65,7 @@ namespace Swift { | |||
| 64 | typedef std::map<std::string, JingleS5BTransportPayload::Candidate> CandidateMap; | 65 | typedef std::map<std::string, JingleS5BTransportPayload::Candidate> CandidateMap; |
| 65 | 66 | ||
| 66 | void setTransporter(FileTransferTransporter* transporter); | 67 | void setTransporter(FileTransferTransporter* transporter); |
| 68 | void removeTransporter(); | ||
| 67 | void fillCandidateMap( | 69 | void fillCandidateMap( |
| 68 | CandidateMap& map, | 70 | CandidateMap& map, |
| 69 | const std::vector<JingleS5BTransportPayload::Candidate>&); | 71 | const std::vector<JingleS5BTransportPayload::Candidate>&); |
diff --git a/Swiften/FileTransfer/OutgoingJingleFileTransfer.cpp b/Swiften/FileTransfer/OutgoingJingleFileTransfer.cpp index aabbd2d..5c18b13 100644 --- a/Swiften/FileTransfer/OutgoingJingleFileTransfer.cpp +++ b/Swiften/FileTransfer/OutgoingJingleFileTransfer.cpp | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | */ | 5 | */ |
| 6 | 6 | ||
| 7 | /* | 7 | /* |
| 8 | * Copyright (C) 2013-2015 Isode Limited. | 8 | * Copyright (c) 2013-2015 Isode Limited. |
| 9 | * All rights reserved. | 9 | * All rights reserved. |
| 10 | * See the COPYING file for more information. | 10 | * See the COPYING file for more information. |
| 11 | */ | 11 | */ |
| @@ -21,25 +21,24 @@ | |||
| 21 | #include <boost/smart_ptr/make_shared.hpp> | 21 | #include <boost/smart_ptr/make_shared.hpp> |
| 22 | #include <boost/typeof/typeof.hpp> | 22 | #include <boost/typeof/typeof.hpp> |
| 23 | 23 | ||
| 24 | #include <Swiften/Base/foreach.h> | ||
| 25 | #include <Swiften/Base/IDGenerator.h> | 24 | #include <Swiften/Base/IDGenerator.h> |
| 26 | #include <Swiften/Jingle/JingleContentID.h> | 25 | #include <Swiften/Base/Log.h> |
| 27 | #include <Swiften/Jingle/JingleSession.h> | 26 | #include <Swiften/Base/foreach.h> |
| 27 | #include <Swiften/Crypto/CryptoProvider.h> | ||
| 28 | #include <Swiften/Elements/JingleFileTransferDescription.h> | 28 | #include <Swiften/Elements/JingleFileTransferDescription.h> |
| 29 | #include <Swiften/Elements/JingleFileTransferHash.h> | 29 | #include <Swiften/Elements/JingleFileTransferHash.h> |
| 30 | #include <Swiften/Elements/JingleTransportPayload.h> | ||
| 31 | #include <Swiften/Elements/JingleIBBTransportPayload.h> | 30 | #include <Swiften/Elements/JingleIBBTransportPayload.h> |
| 32 | #include <Swiften/Elements/JingleS5BTransportPayload.h> | 31 | #include <Swiften/Elements/JingleS5BTransportPayload.h> |
| 33 | #include <Swiften/FileTransfer/IncrementalBytestreamHashCalculator.h> | 32 | #include <Swiften/Elements/JingleTransportPayload.h> |
| 34 | #include <Swiften/FileTransfer/FileTransferTransporter.h> | 33 | #include <Swiften/FileTransfer/FileTransferTransporter.h> |
| 35 | #include <Swiften/FileTransfer/FileTransferTransporterFactory.h> | 34 | #include <Swiften/FileTransfer/FileTransferTransporterFactory.h> |
| 35 | #include <Swiften/FileTransfer/IncrementalBytestreamHashCalculator.h> | ||
| 36 | #include <Swiften/FileTransfer/ReadBytestream.h> | 36 | #include <Swiften/FileTransfer/ReadBytestream.h> |
| 37 | #include <Swiften/FileTransfer/TransportSession.h> | 37 | #include <Swiften/FileTransfer/TransportSession.h> |
| 38 | #include <Swiften/Crypto/CryptoProvider.h> | 38 | #include <Swiften/Jingle/JingleContentID.h> |
| 39 | #include <Swiften/Jingle/JingleSession.h> | ||
| 39 | #include <Swiften/Network/TimerFactory.h> | 40 | #include <Swiften/Network/TimerFactory.h> |
| 40 | 41 | ||
| 41 | #include <Swiften/Base/Log.h> | ||
| 42 | |||
| 43 | using namespace Swift; | 42 | using namespace Swift; |
| 44 | 43 | ||
| 45 | static const int DEFAULT_BLOCK_SIZE = 4096; | 44 | static const int DEFAULT_BLOCK_SIZE = 4096; |
| @@ -78,11 +77,16 @@ OutgoingJingleFileTransfer::~OutgoingJingleFileTransfer() { | |||
| 78 | stream->onRead.disconnect( | 77 | stream->onRead.disconnect( |
| 79 | boost::bind(&IncrementalBytestreamHashCalculator::feedData, hashCalculator, _1)); | 78 | boost::bind(&IncrementalBytestreamHashCalculator::feedData, hashCalculator, _1)); |
| 80 | delete hashCalculator; | 79 | delete hashCalculator; |
| 80 | hashCalculator = NULL; | ||
| 81 | removeTransporter(); | ||
| 81 | } | 82 | } |
| 82 | 83 | ||
| 83 | void OutgoingJingleFileTransfer::start() { | 84 | void OutgoingJingleFileTransfer::start() { |
| 84 | SWIFT_LOG(debug) << std::endl; | 85 | SWIFT_LOG(debug) << std::endl; |
| 85 | if (state != Initial) { SWIFT_LOG(warning) << "Incorrect state" << std::endl; return; } | 86 | if (state != Initial) { |
| 87 | SWIFT_LOG(warning) << "Incorrect state" << std::endl; | ||
| 88 | return; | ||
| 89 | } | ||
| 86 | 90 | ||
| 87 | setTransporter(transporterFactory->createInitiatorTransporter(getInitiator(), getResponder(), options)); | 91 | setTransporter(transporterFactory->createInitiatorTransporter(getInitiator(), getResponder(), options)); |
| 88 | setState(GeneratingInitialLocalCandidates); | 92 | setState(GeneratingInitialLocalCandidates); |
| @@ -290,7 +294,7 @@ void OutgoingJingleFileTransfer::stopAll() { | |||
| 290 | case Finished: SWIFT_LOG(warning) << "Already finished" << std::endl; break; | 294 | case Finished: SWIFT_LOG(warning) << "Already finished" << std::endl; break; |
| 291 | } | 295 | } |
| 292 | if (state != Initial) { | 296 | if (state != Initial) { |
| 293 | delete transporter; | 297 | removeTransporter(); |
| 294 | } | 298 | } |
| 295 | } | 299 | } |
| 296 | 300 | ||
diff --git a/Swiften/FileTransfer/UnitTest/IncomingJingleFileTransferTest.cpp b/Swiften/FileTransfer/UnitTest/IncomingJingleFileTransferTest.cpp index aaf90ea..54d2c88 100644 --- a/Swiften/FileTransfer/UnitTest/IncomingJingleFileTransferTest.cpp +++ b/Swiften/FileTransfer/UnitTest/IncomingJingleFileTransferTest.cpp | |||
| @@ -10,39 +10,39 @@ | |||
| 10 | * See the COPYING file for more information. | 10 | * See the COPYING file for more information. |
| 11 | */ | 11 | */ |
| 12 | 12 | ||
| 13 | #include <cppunit/extensions/HelperMacros.h> | 13 | #include <iostream> |
| 14 | #include <cppunit/extensions/TestFactoryRegistry.h> | ||
| 15 | 14 | ||
| 16 | #include <boost/smart_ptr/make_shared.hpp> | 15 | #include <boost/smart_ptr/make_shared.hpp> |
| 17 | 16 | ||
| 17 | #include <cppunit/extensions/HelperMacros.h> | ||
| 18 | #include <cppunit/extensions/TestFactoryRegistry.h> | ||
| 19 | |||
| 18 | #include <Swiften/Base/ByteArray.h> | 20 | #include <Swiften/Base/ByteArray.h> |
| 19 | #include <Swiften/Base/Override.h> | ||
| 20 | #include <Swiften/Base/Log.h> | 21 | #include <Swiften/Base/Log.h> |
| 22 | #include <Swiften/Base/Override.h> | ||
| 21 | #include <Swiften/Client/DummyStanzaChannel.h> | 23 | #include <Swiften/Client/DummyStanzaChannel.h> |
| 24 | #include <Swiften/Crypto/CryptoProvider.h> | ||
| 25 | #include <Swiften/Crypto/PlatformCryptoProvider.h> | ||
| 22 | #include <Swiften/Elements/IBB.h> | 26 | #include <Swiften/Elements/IBB.h> |
| 27 | #include <Swiften/Elements/JingleFileTransferDescription.h> | ||
| 23 | #include <Swiften/Elements/JingleIBBTransportPayload.h> | 28 | #include <Swiften/Elements/JingleIBBTransportPayload.h> |
| 24 | #include <Swiften/Elements/JingleS5BTransportPayload.h> | 29 | #include <Swiften/Elements/JingleS5BTransportPayload.h> |
| 25 | #include <Swiften/Elements/JingleFileTransferDescription.h> | 30 | #include <Swiften/EventLoop/DummyEventLoop.h> |
| 26 | #include <Swiften/FileTransfer/DefaultFileTransferTransporterFactory.h> | ||
| 27 | #include <Swiften/FileTransfer/ByteArrayWriteBytestream.h> | 31 | #include <Swiften/FileTransfer/ByteArrayWriteBytestream.h> |
| 32 | #include <Swiften/FileTransfer/DefaultFileTransferTransporterFactory.h> | ||
| 28 | #include <Swiften/FileTransfer/IncomingJingleFileTransfer.h> | 33 | #include <Swiften/FileTransfer/IncomingJingleFileTransfer.h> |
| 29 | #include <Swiften/FileTransfer/SOCKS5BytestreamRegistry.h> | ||
| 30 | #include <Swiften/Network/PlatformNetworkEnvironment.h> | ||
| 31 | #include <Swiften/Network/StaticDomainNameResolver.h> | ||
| 32 | #include <Swiften/FileTransfer/SOCKS5BytestreamProxiesManager.h> | 34 | #include <Swiften/FileTransfer/SOCKS5BytestreamProxiesManager.h> |
| 35 | #include <Swiften/FileTransfer/SOCKS5BytestreamRegistry.h> | ||
| 33 | #include <Swiften/FileTransfer/SOCKS5BytestreamServerManager.h> | 36 | #include <Swiften/FileTransfer/SOCKS5BytestreamServerManager.h> |
| 34 | #include <Swiften/Jingle/FakeJingleSession.h> | 37 | #include <Swiften/Jingle/FakeJingleSession.h> |
| 35 | #include <Swiften/Network/NATTraverser.h> | ||
| 36 | #include <Swiften/Network/DummyTimerFactory.h> | ||
| 37 | #include <Swiften/EventLoop/DummyEventLoop.h> | ||
| 38 | #include <Swiften/Network/DummyConnectionFactory.h> | 38 | #include <Swiften/Network/DummyConnectionFactory.h> |
| 39 | #include <Swiften/Network/DummyConnectionServerFactory.h> | 39 | #include <Swiften/Network/DummyConnectionServerFactory.h> |
| 40 | #include <Swiften/Network/DummyTimerFactory.h> | ||
| 41 | #include <Swiften/Network/NATTraverser.h> | ||
| 40 | #include <Swiften/Network/PlatformNATTraversalWorker.h> | 42 | #include <Swiften/Network/PlatformNATTraversalWorker.h> |
| 43 | #include <Swiften/Network/PlatformNetworkEnvironment.h> | ||
| 44 | #include <Swiften/Network/StaticDomainNameResolver.h> | ||
| 41 | #include <Swiften/Queries/IQRouter.h> | 45 | #include <Swiften/Queries/IQRouter.h> |
| 42 | #include <Swiften/Crypto/CryptoProvider.h> | ||
| 43 | #include <Swiften/Crypto/PlatformCryptoProvider.h> | ||
| 44 | |||
| 45 | #include <iostream> | ||
| 46 | 46 | ||
| 47 | using namespace Swift; | 47 | using namespace Swift; |
| 48 | using namespace boost; | 48 | using namespace boost; |
| @@ -89,8 +89,11 @@ public: | |||
| 89 | 89 | ||
| 90 | void tearDown() { | 90 | void tearDown() { |
| 91 | delete ftTransporterFactory; | 91 | delete ftTransporterFactory; |
| 92 | delete networkEnvironment; | ||
| 93 | delete natTraverser; | ||
| 92 | delete bytestreamServerManager; | 94 | delete bytestreamServerManager; |
| 93 | delete bytestreamProxy; | 95 | delete bytestreamProxy; |
| 96 | delete serverConnectionFactory; | ||
| 94 | delete connectionFactory; | 97 | delete connectionFactory; |
| 95 | delete timerFactory; | 98 | delete timerFactory; |
| 96 | delete bytestreamRegistry; | 99 | delete bytestreamRegistry; |
diff --git a/Swiften/FileTransfer/UnitTest/OutgoingJingleFileTransferTest.cpp b/Swiften/FileTransfer/UnitTest/OutgoingJingleFileTransferTest.cpp index 0186e0b..40e7233 100644 --- a/Swiften/FileTransfer/UnitTest/OutgoingJingleFileTransferTest.cpp +++ b/Swiften/FileTransfer/UnitTest/OutgoingJingleFileTransferTest.cpp | |||
| @@ -10,13 +10,15 @@ | |||
| 10 | * See the COPYING file for more information. | 10 | * See the COPYING file for more information. |
| 11 | */ | 11 | */ |
| 12 | 12 | ||
| 13 | #include <cppunit/extensions/HelperMacros.h> | 13 | #include <iostream> |
| 14 | #include <cppunit/extensions/TestFactoryRegistry.h> | ||
| 15 | 14 | ||
| 16 | #include <boost/bind.hpp> | 15 | #include <boost/bind.hpp> |
| 17 | #include <boost/optional.hpp> | 16 | #include <boost/optional.hpp> |
| 18 | #include <boost/smart_ptr/make_shared.hpp> | 17 | #include <boost/smart_ptr/make_shared.hpp> |
| 19 | 18 | ||
| 19 | #include <cppunit/extensions/HelperMacros.h> | ||
| 20 | #include <cppunit/extensions/TestFactoryRegistry.h> | ||
| 21 | |||
| 20 | #include <Swiften/Base/ByteArray.h> | 22 | #include <Swiften/Base/ByteArray.h> |
| 21 | #include <Swiften/Base/IDGenerator.h> | 23 | #include <Swiften/Base/IDGenerator.h> |
| 22 | #include <Swiften/Base/Override.h> | 24 | #include <Swiften/Base/Override.h> |
| @@ -47,8 +49,6 @@ | |||
| 47 | #include <Swiften/Network/PlatformNetworkEnvironment.h> | 49 | #include <Swiften/Network/PlatformNetworkEnvironment.h> |
| 48 | #include <Swiften/Queries/IQRouter.h> | 50 | #include <Swiften/Queries/IQRouter.h> |
| 49 | 51 | ||
| 50 | #include <iostream> | ||
| 51 | |||
| 52 | using namespace Swift; | 52 | using namespace Swift; |
| 53 | 53 | ||
| 54 | class OutgoingJingleFileTransferTest : public CppUnit::TestFixture { | 54 | class OutgoingJingleFileTransferTest : public CppUnit::TestFixture { |
| @@ -123,10 +123,13 @@ public: | |||
| 123 | 123 | ||
| 124 | void tearDown() { | 124 | void tearDown() { |
| 125 | delete ftTransportFactory; | 125 | delete ftTransportFactory; |
| 126 | delete networkEnvironment; | ||
| 127 | delete natTraverser; | ||
| 126 | delete bytestreamServerManager; | 128 | delete bytestreamServerManager; |
| 127 | delete s5bProxy; | 129 | delete s5bProxy; |
| 128 | delete idGen; | 130 | delete idGen; |
| 129 | delete s5bRegistry; | 131 | delete s5bRegistry; |
| 132 | delete serverConnectionFactory; | ||
| 130 | delete connectionFactory; | 133 | delete connectionFactory; |
| 131 | delete timerFactory; | 134 | delete timerFactory; |
| 132 | delete eventLoop; | 135 | delete eventLoop; |
Swift