summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/management/ManagementBroker.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/management/ManagementBroker.cpp')
-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();