From dbf6d7accc57c7cf243fc09a19457222e13d032b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rafa=C3=ABl=20Carr=C3=A9?=
 <rafael.carre@savoirfairelinux.com>
Date: Mon, 15 Aug 2011 16:36:23 -0400
Subject: [PATCH] removeCall() : simplify , fix leak

---
 daemon/src/iax/iaxvoiplink.cpp | 13 -------------
 daemon/src/iax/iaxvoiplink.h   |  5 -----
 daemon/src/sip/sipvoiplink.cpp | 13 -------------
 daemon/src/sip/sipvoiplink.h   |  5 -----
 daemon/src/voiplink.cpp        |  5 ++---
 daemon/src/voiplink.h          |  6 ------
 6 files changed, 2 insertions(+), 45 deletions(-)

diff --git a/daemon/src/iax/iaxvoiplink.cpp b/daemon/src/iax/iaxvoiplink.cpp
index c0d2a7cfa9..26d6b7ce20 100644
--- a/daemon/src/iax/iaxvoiplink.cpp
+++ b/daemon/src/iax/iaxvoiplink.cpp
@@ -181,19 +181,6 @@ IAXVoIPLink::terminateIAXCall()
     _callMap.clear();
 }
 
-void IAXVoIPLink::terminateCall (const std::string& id)
-{
-    IAXCall* call = getIAXCall (id);
-
-    if (call) {
-        _debug ("IAXVoIPLink: Terminate call");
-        delete call;
-        call = 0;
-    }
-}
-
-
-
 void
 IAXVoIPLink::getEvent()
 {
diff --git a/daemon/src/iax/iaxvoiplink.h b/daemon/src/iax/iaxvoiplink.h
index 245c09fa6c..1aeefc9c8b 100644
--- a/daemon/src/iax/iaxvoiplink.h
+++ b/daemon/src/iax/iaxvoiplink.h
@@ -88,11 +88,6 @@ class IAXVoIPLink : public VoIPLink
          */
         virtual void terminate (void);
 
-        /**
-         * Terminate on call
-         */
-        virtual void terminateCall (const std::string& id);
-
         /**
          * Send out registration
          * @return bool The new registration state (are we registered ?)
diff --git a/daemon/src/sip/sipvoiplink.cpp b/daemon/src/sip/sipvoiplink.cpp
index 91a4d18db9..f58d8ba1e1 100644
--- a/daemon/src/sip/sipvoiplink.cpp
+++ b/daemon/src/sip/sipvoiplink.cpp
@@ -1330,19 +1330,6 @@ SIPVoIPLink::refuse (const std::string& id)
     return true;
 }
 
-void
-SIPVoIPLink::terminateCall (const std::string& id)
-{
-    _debug ("UserAgent: Terminate call %s", id.c_str());
-
-    SIPCall *call = getSIPCall (id);
-
-    if (call) {
-        // terminate the sip call
-        delete call;
-    }
-}
-
 std::string
 SIPVoIPLink::getCurrentCodecName(const std::string& id)
 {
diff --git a/daemon/src/sip/sipvoiplink.h b/daemon/src/sip/sipvoiplink.h
index a38894e47b..3bc2fcf78a 100644
--- a/daemon/src/sip/sipvoiplink.h
+++ b/daemon/src/sip/sipvoiplink.h
@@ -212,11 +212,6 @@ class SIPVoIPLink : public VoIPLink
          */
         virtual bool refuse (const std::string& id);
 
-        /**
-         * Terminate only one call
-         */
-        virtual void terminateCall (const std::string& id);
-
         /**
          * Send DTMF refering to account configuration
          * @param id The call identifier
diff --git a/daemon/src/voiplink.cpp b/daemon/src/voiplink.cpp
index 34e843675d..ac6c92a223 100644
--- a/daemon/src/voiplink.cpp
+++ b/daemon/src/voiplink.cpp
@@ -61,9 +61,8 @@ void VoIPLink::removeCall (const std::string& id)
 
     _debug ("VoipLink: removing call %s from list", id.c_str());
 
-    _callMap.erase (id);
-
-    terminateCall (id);
+    delete _callMap[id];
+    _callMap.erase(id);
 }
 
 Call* VoIPLink::getCall (const std::string& id)
diff --git a/daemon/src/voiplink.h b/daemon/src/voiplink.h
index 0a8b945e69..c8f3ee8e20 100644
--- a/daemon/src/voiplink.h
+++ b/daemon/src/voiplink.h
@@ -87,12 +87,6 @@ class VoIPLink
          */
         virtual void terminate (void) = 0;
 
-        /**
-         * Virtual method
-         * Delete calls
-         */
-        virtual void terminateCall (const std::string& id) = 0;
-
         /**
          * Virtual method
          * Build and send account registration request
-- 
GitLab