#9464 contour plot crash on legend levels change

The geometry was not properly cleared when on legend changed, and would lead to
crash when number of legend levels decreased.
Janitor: Fix two crashes when loading repro case
This commit is contained in:
Kristian Bendiksen
2022-11-24 10:39:46 +01:00
committed by GitHub
parent 5847547d81
commit 4345cb3a70
3 changed files with 7 additions and 3 deletions

View File

@@ -380,8 +380,10 @@ void RivSurfacePartMgr::generateNativePartGeometry()
m_usedSurfaceData = m_surfaceInView->surface()->surfaceData(); m_usedSurfaceData = m_surfaceInView->surface()->surfaceData();
if ( m_usedSurfaceData.isNull() ) return; if ( m_usedSurfaceData.isNull() ) return;
const std::vector<cvf::Vec3d>& vertices = m_usedSurfaceData->vertices(); const std::vector<cvf::Vec3d>& vertices = m_usedSurfaceData->vertices();
cvf::ref<cvf::Vec3fArray> cvfVertices = new cvf::Vec3fArray( vertices.size() ); if ( vertices.empty() ) return;
cvf::ref<cvf::Vec3fArray> cvfVertices = new cvf::Vec3fArray( vertices.size() );
for ( size_t i = 0; i < vertices.size(); ++i ) for ( size_t i = 0; i < vertices.size(); ++i )
{ {
( *cvfVertices )[i] = cvf::Vec3f( vertices[i] - displayModOffsett ); ( *cvfVertices )[i] = cvf::Vec3f( vertices[i] - displayModOffsett );

View File

@@ -240,6 +240,7 @@ void RimEclipseContourMapView::onUpdateDisplayModelForCurrentTimeStep()
{ {
static_cast<RimEclipsePropertyFilterCollection*>( nativePropertyFilterCollection() )->updateFromCurrentTimeStep(); static_cast<RimEclipsePropertyFilterCollection*>( nativePropertyFilterCollection() )->updateFromCurrentTimeStep();
m_contourMapProjection->clearGeometry();
updateGeometry(); updateGeometry();
} }

View File

@@ -900,7 +900,8 @@ bool RimViewController::isPropertyFilterControlPossible() const
if ( eclipseView ) if ( eclipseView )
{ {
RimEclipseView* depEclipseView = managedEclipseView(); RimEclipseView* depEclipseView = managedEclipseView();
if ( depEclipseView && eclipseView->eclipseCase()->isGridSizeEqualTo( depEclipseView->eclipseCase() ) ) if ( depEclipseView && eclipseView->eclipseCase() && depEclipseView->eclipseCase() &&
eclipseView->eclipseCase()->isGridSizeEqualTo( depEclipseView->eclipseCase() ) )
{ {
return true; return true;
} }