From fb566f112ca88bd20526642c778d72f45d8de9e4 Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Sun, 11 Oct 2026 16:09:16 +0200 Subject: [PATCH] #14903: Guard other selection item users against deleted result definition --- ApplicationLibCode/SocketInterface/RiaCaseInfoCommands.cpp | 2 ++ .../SocketInterface/RiaPropertyDataCommands.cpp | 6 ++++-- ApplicationLibCode/UserInterface/RiuMohrsCirclePlot.cpp | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/ApplicationLibCode/SocketInterface/RiaCaseInfoCommands.cpp b/ApplicationLibCode/SocketInterface/RiaCaseInfoCommands.cpp index 5139a2981b..c56d91554a 100644 --- a/ApplicationLibCode/SocketInterface/RiaCaseInfoCommands.cpp +++ b/ApplicationLibCode/SocketInterface/RiaCaseInfoCommands.cpp @@ -611,6 +611,7 @@ public: if ( item->type() == RiuSelectionItem::ECLIPSE_SELECTION_OBJECT ) { const RiuEclipseSelectionItem* eclipseItem = static_cast( item ); + if ( !eclipseItem->m_resultDefinition ) continue; eclipseItem->m_resultDefinition->eclipseCase() ->eclipseCaseData() @@ -623,6 +624,7 @@ public: else if ( item->type() == RiuSelectionItem::GEOMECH_SELECTION_OBJECT ) { const RiuGeoMechSelectionItem* geomechItem = static_cast( item ); + if ( !geomechItem->m_resultDefinition ) continue; validIndex = geomechItem->m_resultDefinition->ownerCaseData() ->femParts() diff --git a/ApplicationLibCode/SocketInterface/RiaPropertyDataCommands.cpp b/ApplicationLibCode/SocketInterface/RiaPropertyDataCommands.cpp index 53ba18a4c0..b488dce594 100644 --- a/ApplicationLibCode/SocketInterface/RiaPropertyDataCommands.cpp +++ b/ApplicationLibCode/SocketInterface/RiaPropertyDataCommands.cpp @@ -1287,7 +1287,8 @@ public: { const RiuEclipseSelectionItem* eclipseItem = static_cast( item ); - if ( eclipseItem->m_resultDefinition->eclipseCase()->caseId() == reservoirCase->caseId() ) + if ( eclipseItem->m_resultDefinition && eclipseItem->m_resultDefinition->eclipseCase() && + eclipseItem->m_resultDefinition->eclipseCase()->caseId() == reservoirCase->caseId() ) { selectedCells.push_back( std::make_pair( eclipseItem->m_gridIndex, eclipseItem->m_gridLocalCellIndex ) ); } @@ -1296,7 +1297,8 @@ public: { const RiuGeoMechSelectionItem* geomechItem = static_cast( item ); - if ( geomechItem->m_resultDefinition->geoMechCase()->caseId() == reservoirCase->caseId() ) + if ( geomechItem->m_resultDefinition && geomechItem->m_resultDefinition->geoMechCase() && + geomechItem->m_resultDefinition->geoMechCase()->caseId() == reservoirCase->caseId() ) { selectedCells.push_back( std::make_pair( geomechItem->m_gridIndex, geomechItem->m_cellIndex ) ); } diff --git a/ApplicationLibCode/UserInterface/RiuMohrsCirclePlot.cpp b/ApplicationLibCode/UserInterface/RiuMohrsCirclePlot.cpp index 45da637a45..1a8af9e8ab 100644 --- a/ApplicationLibCode/UserInterface/RiuMohrsCirclePlot.cpp +++ b/ApplicationLibCode/UserInterface/RiuMohrsCirclePlot.cpp @@ -107,7 +107,7 @@ void RiuMohrsCirclePlot::appendSelection( const RiuSelectionItem* selectionItem geoMechSelectionItem = extractGeoMechSelectionItem( selectionItem, newFollowAnimView ); - if ( geoMechSelectionItem ) + if ( geoMechSelectionItem && geoMechSelectionItem->m_resultDefinition ) { const size_t gridIndex = geoMechSelectionItem->m_gridIndex; RigFemPart* femPart = geoMechSelectionItem->m_resultDefinition->ownerCaseData()->femParts()->part( gridIndex );