Regression Test: Do not access RimWellLogPlotCollection directly from desctructors

Regression tests are calling RimProject::reset(), and this function deletes the RimProject object.
This commit is contained in:
Magne Sjaastad 2022-08-23 10:01:24 +02:00
parent 4d244bc848
commit c2ab9e6fe0
6 changed files with 29 additions and 11 deletions

View File

@ -98,7 +98,7 @@ void caf::AppEnum<RimGeoMechCase::InitialPermeabilityType>::setUp()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimGeoMechCase::RimGeoMechCase( void )
RimGeoMechCase::RimGeoMechCase()
: m_applyTimeFilter( false )
{
CAF_PDM_InitScriptableObjectWithNameAndComment( "GeoMechanical Case",
@ -181,14 +181,21 @@ RimGeoMechCase::RimGeoMechCase( void )
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimGeoMechCase::~RimGeoMechCase( void )
RimGeoMechCase::~RimGeoMechCase()
{
geoMechViews.deleteChildren();
RimWellLogPlotCollection* plotCollection = RimMainPlotCollection::current()->wellLogPlotCollection();
if ( plotCollection )
RimProject* project = RimProject::current();
if ( project )
{
plotCollection->removeExtractors( this->geoMechData() );
if ( project->mainPlotCollection() )
{
RimWellLogPlotCollection* plotCollection = project->mainPlotCollection()->wellLogPlotCollection();
if ( plotCollection )
{
plotCollection->removeExtractors( this->geoMechData() );
}
}
}
if ( this->geoMechData() )

View File

@ -67,8 +67,9 @@ public:
INITIAL_PERMEABILITY_PER_ELEMENT
};
RimGeoMechCase( void );
~RimGeoMechCase( void ) override;
RimGeoMechCase();
~RimGeoMechCase() override;
CaseOpenStatus openGeoMechCase( std::string* errorMessage );

View File

@ -31,6 +31,7 @@
#include "RigHexIntersectionTools.h"
#include "RimCellFilterCollection.h"
#include "RimGeoMechCase.h"
#include "RimGeoMechCellColors.h"
#include "RimGeoMechContourMapView.h"
#include "RimGeoMechPropertyFilterCollection.h"

View File

@ -23,7 +23,6 @@
#include "RimCheckableNamedObject.h"
#include "RimContourMapProjection.h"
#include "RimGeoMechCase.h"
#include "cafDisplayCoordTransform.h"
#include "cafPdmChildField.h"
@ -37,6 +36,7 @@
#include "cvfVector2.h"
class RimGeoMechContourMapView;
class RimGeoMechCase;
//==================================================================================================
///

View File

@ -152,10 +152,17 @@ RimEclipseCase::~RimEclipseCase()
delete m_fractureModelResults();
delete m_inputPropertyCollection;
RimWellLogPlotCollection* plotCollection = RimMainPlotCollection::current()->wellLogPlotCollection();
if ( plotCollection )
RimProject* project = RimProject::current();
if ( project )
{
plotCollection->removeExtractors( this->eclipseCaseData() );
if ( project->mainPlotCollection() )
{
RimWellLogPlotCollection* plotCollection = project->mainPlotCollection()->wellLogPlotCollection();
if ( plotCollection )
{
plotCollection->removeExtractors( this->eclipseCaseData() );
}
}
}
if ( this->eclipseCaseData() )

View File

@ -160,6 +160,8 @@ RimMainPlotCollection::~RimMainPlotCollection()
//--------------------------------------------------------------------------------------------------
RimMainPlotCollection* RimMainPlotCollection::current()
{
CVF_ASSERT( RimProject::current() );
return RimProject::current()->mainPlotCollection();
}