diff options
Diffstat (limited to 'Swiften/Component/ComponentSessionStanzaChannel.cpp')
-rw-r--r-- | Swiften/Component/ComponentSessionStanzaChannel.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/Swiften/Component/ComponentSessionStanzaChannel.cpp b/Swiften/Component/ComponentSessionStanzaChannel.cpp index fd61594..e4bf231 100644 --- a/Swiften/Component/ComponentSessionStanzaChannel.cpp +++ b/Swiften/Component/ComponentSessionStanzaChannel.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2016 Isode Limited. + * Copyright (c) 2010-2017 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ @@ -12,6 +12,15 @@ namespace Swift { +ComponentSessionStanzaChannel::~ComponentSessionStanzaChannel() { + if (session) { + session->onInitialized.disconnect(boost::bind(&ComponentSessionStanzaChannel::handleSessionInitialized, this)); + session->onFinished.disconnect(boost::bind(&ComponentSessionStanzaChannel::handleSessionFinished, this, _1)); + session->onStanzaReceived.disconnect(boost::bind(&ComponentSessionStanzaChannel::handleStanza, this, _1)); + session.reset(); + } +} + void ComponentSessionStanzaChannel::setSession(std::shared_ptr<ComponentSession> session) { assert(!this->session); this->session = session; |