mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#2873 New AsyncPointerVectorDeleter-classes to handle memory deletion in separate thread.
This commit is contained in:
@@ -30,6 +30,7 @@
|
||||
|
||||
#include "RiuPlotMainWindow.h"
|
||||
|
||||
#include "cafAsyncObjectDeleter.h"
|
||||
#include "cafSelectionManager.h"
|
||||
|
||||
#include "cvfAssert.h"
|
||||
@@ -50,7 +51,7 @@ void RicCloseSummaryCaseFeature::setupActionLook(QAction* actionToSetup)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicCloseSummaryCaseFeature::deleteSummaryCases(const std::vector<RimSummaryCase*>& cases)
|
||||
void RicCloseSummaryCaseFeature::deleteSummaryCases(std::vector<RimSummaryCase*>& cases)
|
||||
{
|
||||
RimSummaryPlotCollection* summaryPlotColl = RiaSummaryTools::summaryPlotCollection();
|
||||
|
||||
@@ -66,13 +67,13 @@ void RicCloseSummaryCaseFeature::deleteSummaryCases(const std::vector<RimSummary
|
||||
summaryCase->firstAncestorOrThisOfTypeAsserted(summaryCaseMainCollection);
|
||||
|
||||
summaryCaseMainCollection->removeCase(summaryCase);
|
||||
delete summaryCase;
|
||||
|
||||
summaryCaseMainCollection->updateAllRequiredEditors();
|
||||
}
|
||||
|
||||
RiuPlotMainWindow* mainPlotWindow = RiaApplication::instance()->mainPlotWindow();
|
||||
mainPlotWindow->updateSummaryPlotToolBar();
|
||||
|
||||
caf::AsyncRawPointerVectorDeleter<RimSummaryCase> summaryCaseDeleter(std::move(cases));
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -32,7 +32,7 @@ class RicCloseSummaryCaseFeature : public caf::CmdFeature
|
||||
{
|
||||
CAF_CMD_HEADER_INIT;
|
||||
public:
|
||||
static void deleteSummaryCases(const std::vector<RimSummaryCase*>& cases);
|
||||
static void deleteSummaryCases(std::vector<RimSummaryCase*>& cases);
|
||||
|
||||
protected:
|
||||
// Overrides
|
||||
|
||||
@@ -75,7 +75,8 @@ void RicCloseSummaryCaseInCollectionFeature::onActionTriggered(bool isChecked)
|
||||
|
||||
if (summaryCaseMainCollections.size() > 0)
|
||||
{
|
||||
RicCloseSummaryCaseFeature::deleteSummaryCases(summaryCaseMainCollections[0]->allSummaryCases());
|
||||
std::vector<RimSummaryCase*> allSummaryCases = summaryCaseMainCollections[0]->allSummaryCases();
|
||||
RicCloseSummaryCaseFeature::deleteSummaryCases(allSummaryCases);
|
||||
}
|
||||
|
||||
std::vector<RimSummaryCaseCollection*> summaryCaseCollections;
|
||||
@@ -83,7 +84,8 @@ void RicCloseSummaryCaseInCollectionFeature::onActionTriggered(bool isChecked)
|
||||
|
||||
for (RimSummaryCaseCollection* summaryCaseCollection : summaryCaseCollections)
|
||||
{
|
||||
RicCloseSummaryCaseFeature::deleteSummaryCases(summaryCaseCollection->allSummaryCases());
|
||||
std::vector<RimSummaryCase*> collectionSummaryCases = summaryCaseCollection->allSummaryCases();
|
||||
RicCloseSummaryCaseFeature::deleteSummaryCases(collectionSummaryCases);
|
||||
}
|
||||
|
||||
RiuPlotMainWindow* mainPlotWindow = RiaApplication::instance()->mainPlotWindow();
|
||||
|
||||
@@ -53,7 +53,7 @@ RimSummaryCaseCollection::RimSummaryCaseCollection()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimSummaryCaseCollection::~RimSummaryCaseCollection()
|
||||
{
|
||||
m_cases.deleteAllChildObjects();
|
||||
m_cases.deleteAllChildObjectsAsync();
|
||||
updateReferringCurveSets();
|
||||
}
|
||||
|
||||
|
||||
@@ -75,8 +75,8 @@ RimSummaryCaseMainCollection::RimSummaryCaseMainCollection()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimSummaryCaseMainCollection::~RimSummaryCaseMainCollection()
|
||||
{
|
||||
m_cases.deleteAllChildObjects();
|
||||
m_caseCollections.deleteAllChildObjects();
|
||||
m_cases.deleteAllChildObjectsAsync();
|
||||
m_caseCollections.deleteAllChildObjectsAsync();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user