mirror of
https://github.com/OPM/ResInsight.git
synced 2026-10-25 06:38:13 -05:00
ViewLinker: Fix null pointer dereference when master view is null
Guard against null m_masterView in updateDependentViews, allViewsForCameraSync, allViews, and updateScaleZ to prevent crashes when linking views without a valid master view set.
This commit is contained in:
1 parent
2f08f15fc9
commit
641acf9e35
1 file changed
+4
-3
@@ -295,7 +295,7 @@ void RimViewLinker::allViewsForCameraSync( const Rim3dView* source, std::vector<
|
||||
{
|
||||
if ( !isActive() ) return;
|
||||
|
||||
if ( source != m_masterView() )
|
||||
if ( m_masterView() && source != m_masterView() )
|
||||
{
|
||||
views.push_back( m_masterView() );
|
||||
}
|
||||
@@ -318,6 +318,7 @@ void RimViewLinker::allViewsForCameraSync( const Rim3dView* source, std::vector<
|
||||
void RimViewLinker::updateDependentViews()
|
||||
{
|
||||
if ( m_viewControllers.empty() ) return;
|
||||
if ( !m_masterView ) return;
|
||||
|
||||
updateOverrides();
|
||||
updateDuplicatedPropertyFilters();
|
||||
@@ -379,7 +380,7 @@ std::vector<Rim3dView*> RimViewLinker::allViews() const
|
||||
{
|
||||
std::vector<Rim3dView*> views;
|
||||
|
||||
views.push_back( m_masterView() );
|
||||
if ( m_masterView() ) views.push_back( m_masterView() );
|
||||
|
||||
for ( const auto& viewController : m_viewControllers )
|
||||
{
|
||||
@@ -424,7 +425,7 @@ void RimViewLinker::updateScaleZ( Rim3dView* sourceView, double scaleZ )
|
||||
// Make sure scale factors are identical
|
||||
for ( auto& view : views )
|
||||
{
|
||||
view->setScaleZAndUpdate( scaleZ );
|
||||
if ( view ) view->setScaleZAndUpdate( scaleZ );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user