From ab90fac4e4c306f47ab0903b33d1b3aacb228c46 Mon Sep 17 00:00:00 2001 From: Javier Date: Fri, 25 Dec 2015 23:33:26 +0100 Subject: destroy agents on disconnection --- capabilityagent.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'capabilityagent.cc') 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(); + Q_ASSERT(capPeer); + capPeer->requestConnection(request); } -- cgit v1.2.3