From c7360f914bc511dd1c7af2b0be288388dfed88f6 Mon Sep 17 00:00:00 2001
From: Sofia Antony <sofia.antony@stfc.ac.uk>
Date: Mon, 27 Sep 2010 10:15:32 +0000
Subject: [PATCH] re#1289 - fix for MantidPlot crash on deleting WorkspaceGroup

---
 Code/Mantid/API/src/WorkspaceGroup.cpp | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/Code/Mantid/API/src/WorkspaceGroup.cpp b/Code/Mantid/API/src/WorkspaceGroup.cpp
index 35dd01e066c..5ace3700911 100644
--- a/Code/Mantid/API/src/WorkspaceGroup.cpp
+++ b/Code/Mantid/API/src/WorkspaceGroup.cpp
@@ -71,15 +71,13 @@ void WorkspaceGroup::remove(const std::string& name)
 void WorkspaceGroup::deepRemoveAll()
 {
   Mantid::API::AnalysisDataService::Instance().notificationCenter.removeObserver(m_deleteObserver);
-  // First member of the group is itself so skip it through and delete
-  // but skipping itself
-  size_t nentries = m_wsNames.size();
-  for( size_t i = nentries - 1; i > 0; --i)
-  {
-    AnalysisDataService::Instance().remove(m_wsNames[i]);
-    remove(m_wsNames[i]);
-  }
-  m_wsNames.clear();
+   while (!m_wsNames.empty())
+   {
+	   AnalysisDataService::Instance().remove(m_wsNames.back());
+	   m_wsNames.pop_back();
+
+   }
+   
   Mantid::API::AnalysisDataService::Instance().notificationCenter.addObserver(m_deleteObserver);
 }
 
-- 
GitLab