summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/management
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2008-11-10 16:53:41 +0000
committerTed Ross <tross@apache.org>2008-11-10 16:53:41 +0000
commitc238bdf224cb3ba37c5fb2de06da7f41e98545a2 (patch)
treee409e15180c6c8c7e5641d74e810427a9491b266 /cpp/src/qpid/management
parent23dac5548075ceae8e85799db4b43359682ae50c (diff)
downloadqpid-python-c238bdf224cb3ba37c5fb2de06da7f41e98545a2.tar.gz
QPID-1446 - Fixed memory leak in management agent affecting broker.
Added debug output to remote agent controllable via env variable. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@712696 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/management')
-rw-r--r--cpp/src/qpid/management/ManagementBroker.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/cpp/src/qpid/management/ManagementBroker.cpp b/cpp/src/qpid/management/ManagementBroker.cpp
index 1b89be18d9..a9c67ff1b9 100644
--- a/cpp/src/qpid/management/ManagementBroker.cpp
+++ b/cpp/src/qpid/management/ManagementBroker.cpp
@@ -409,8 +409,13 @@ void ManagementBroker::periodicProcessing (void)
// Delete flagged objects
for (std::list<ObjectId>::reverse_iterator iter = deleteList.rbegin ();
iter != deleteList.rend ();
- iter++)
- managementObjects.erase (*iter);
+ iter++) {
+ ManagementObjectMap::iterator miter = managementObjects.find(*iter);
+ if (miter != managementObjects.end()) {
+ delete miter->second;
+ managementObjects.erase(*iter);
+ }
+ }
if (!deleteList.empty()) {
deleteList.clear();