summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2010-09-10 15:02:18 (GMT)
committerRemko Tronçon <git@el-tramo.be>2010-09-11 21:53:46 (GMT)
commit5fa9ecb3dff1a5918c202b72a5db313c0b7b879a (patch)
treeefd7abfd306e5e2f773bdc62c7bf1ed491c5c410 /Swiften/Network
parentbc6a510af449b6e383a11fc20c9859b8bcac247c (diff)
downloadswift-contrib-5fa9ecb3dff1a5918c202b72a5db313c0b7b879a.zip
swift-contrib-5fa9ecb3dff1a5918c202b72a5db313c0b7b879a.tar.bz2
Fixed some memory leaks.
Diffstat (limited to 'Swiften/Network')
-rw-r--r--Swiften/Network/Connector.cpp9
-rw-r--r--Swiften/Network/Connector.h1
2 files changed, 9 insertions, 1 deletions
diff --git a/Swiften/Network/Connector.cpp b/Swiften/Network/Connector.cpp
index 34fdf0b..d9a4c5d 100644
--- a/Swiften/Network/Connector.cpp
+++ b/Swiften/Network/Connector.cpp
@@ -112,7 +112,7 @@ void Connector::tryConnect(const HostAddressPort& target) {
assert(!currentConnection);
//std::cout << "Connector::tryConnect() " << target.getAddress().toString() << " " << target.getPort() << std::endl;
currentConnection = connectionFactory->createConnection();
- currentConnection->onConnectFinished.connect(boost::bind(&Connector::handleConnectionConnectFinished, shared_from_this(), _1));
+ connectFinishedConnection = currentConnection->onConnectFinished.connect(boost::bind(&Connector::handleConnectionConnectFinished, shared_from_this(), _1));
currentConnection->connect(target);
}
@@ -140,6 +140,13 @@ void Connector::finish(boost::shared_ptr<Connection> connection) {
timer->stop();
timer.reset();
}
+ if (serviceQuery) {
+ serviceQuery.reset();
+ }
+ if (addressQuery) {
+ addressQuery.reset();
+ }
+ connectFinishedConnection.disconnect();
onConnectFinished(connection);
}
diff --git a/Swiften/Network/Connector.h b/Swiften/Network/Connector.h
index 6442a8f..36026de 100644
--- a/Swiften/Network/Connector.h
+++ b/Swiften/Network/Connector.h
@@ -65,5 +65,6 @@ namespace Swift {
std::deque<HostAddress> addressQueryResults;
bool queriedAllServices;
boost::shared_ptr<Connection> currentConnection;
+ boost::bsignals::connection connectFinishedConnection;
};
};