summaryrefslogtreecommitdiff
path: root/capabilityagent.cc
diff options
context:
space:
mode:
authorJavier <dev.git@javispedro.com>2015-12-25 23:33:26 +0100
committerJavier <dev.git@javispedro.com>2015-12-25 23:33:26 +0100
commitab90fac4e4c306f47ab0903b33d1b3aacb228c46 (patch)
treee0f04c9270cefe2002410e49b3ac06dd086e049d /capabilityagent.cc
parent14d20babe395e52d220bbc27e91cec2fddd1ed0f (diff)
downloadsapd-ab90fac4e4c306f47ab0903b33d1b3aacb228c46.tar.gz
sapd-ab90fac4e4c306f47ab0903b33d1b3aacb228c46.zip
destroy agents on disconnection
Diffstat (limited to 'capabilityagent.cc')
-rw-r--r--capabilityagent.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/capabilityagent.cc b/capabilityagent.cc
index 3831e5d..cdc80b6 100644
--- a/capabilityagent.cc
+++ b/capabilityagent.cc
@@ -52,9 +52,10 @@ void CapabilityAgent::registerServices(SAPManager *manager)
void CapabilityAgent::peerFound(SAPPeer *peer)
{
- new CapabilityPeer(peer, peer);
// We make the capability peer a child of the peer object itself,
// so that the peer can find it.
+ CapabilityPeer *capPeer = new CapabilityPeer(peer, peer);
+ connect(peer, SIGNAL(disconnected()), capPeer, SLOT(deleteLater()));
}
void CapabilityAgent::requestConnection(SAPConnectionRequest *request)
@@ -62,5 +63,7 @@ void CapabilityAgent::requestConnection(SAPConnectionRequest *request)
SAPPeer *peer = request->peer();
CapabilityPeer *capPeer = peer->findChild<CapabilityPeer*>();
+ Q_ASSERT(capPeer);
+
capPeer->requestConnection(request);
}