You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kg...@apache.org on 2010/09/24 17:24:39 UTC
svn commit: r1000907 - in /qpid/trunk/qpid/cpp/src/qpid/console: Broker.cpp
SessionManager.cpp
Author: kgiusti
Date: Fri Sep 24 15:24:38 2010
New Revision: 1000907
URL: http://svn.apache.org/viewvc?rev=1000907&view=rev
Log:
QPID-2885: clean up memory leaks on C++ qmf console shutdown.
Modified:
qpid/trunk/qpid/cpp/src/qpid/console/Broker.cpp
qpid/trunk/qpid/cpp/src/qpid/console/SessionManager.cpp
Modified: qpid/trunk/qpid/cpp/src/qpid/console/Broker.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/console/Broker.cpp?rev=1000907&r1=1000906&r2=1000907&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/console/Broker.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/console/Broker.cpp Fri Sep 24 15:24:38 2010
@@ -59,6 +59,11 @@ Broker::~Broker()
{
connThreadBody.shutdown();
connThread.join();
+ resetAgents();
+ // resetAgents() does not delete the broker agent...
+ for (AgentMap::iterator iter = agents.begin(); iter != agents.end(); iter++) {
+ delete iter->second;
+ }
}
string Broker::getUrl() const
Modified: qpid/trunk/qpid/cpp/src/qpid/console/SessionManager.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/console/SessionManager.cpp?rev=1000907&r1=1000906&r2=1000907&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/console/SessionManager.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/console/SessionManager.cpp Fri Sep 24 15:24:38 2010
@@ -46,6 +46,15 @@ SessionManager::~SessionManager()
for (vector<Broker*>::iterator iter = brokers.begin();
iter != brokers.end(); iter++)
delete *iter;
+
+ for (map<string, Package*>::iterator iter = packages.begin();
+ iter != packages.end(); iter++) {
+ for (Package::ClassMap::iterator citer = iter->second->classes.begin();
+ citer != iter->second->classes.end();
+ citer++)
+ delete citer->second;
+ delete iter->second;
+ }
}
Broker* SessionManager::addBroker(client::ConnectionSettings& settings)
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org