diff --git a/ApplicationLibCode/ProjectDataModel/Rim3dView.cpp b/ApplicationLibCode/ProjectDataModel/Rim3dView.cpp index 7b7bbb2b92..da2ac6223a 100644 --- a/ApplicationLibCode/ProjectDataModel/Rim3dView.cpp +++ b/ApplicationLibCode/ProjectDataModel/Rim3dView.cpp @@ -604,15 +604,20 @@ std::vector Rim3dView::validComparisonViews() const auto isIntersectionView = []( const Rim3dView* view ) { return dynamic_cast( view ) != nullptr; }; std::vector validComparisonViews; - for ( auto view : RimProject::current()->allViews() ) + + // Project can be null while it is being torn down. + if ( auto project = RimProject::current() ) { - if ( dynamic_cast( view ) ) continue; - - bool isSameViewType = isIntersectionView( this ) == isIntersectionView( view ); - - if ( view != this && isSameViewType ) + for ( auto view : project->allViews() ) { - validComparisonViews.push_back( view ); + if ( dynamic_cast( view ) ) continue; + + bool isSameViewType = isIntersectionView( this ) == isIntersectionView( view ); + + if ( view != this && isSameViewType ) + { + validComparisonViews.push_back( view ); + } } } diff --git a/ApplicationLibCode/UserInterface/RiuMainWindow.cpp b/ApplicationLibCode/UserInterface/RiuMainWindow.cpp index 6763bfb313..4dd06de8e7 100644 --- a/ApplicationLibCode/UserInterface/RiuMainWindow.cpp +++ b/ApplicationLibCode/UserInterface/RiuMainWindow.cpp @@ -1208,9 +1208,13 @@ std::vector RiuMainWindow::viewWindows() { std::vector views; - for ( auto v : RimProject::current()->descendantsOfType() ) + // Project can be null while it is being torn down. + if ( auto project = RimProject::current() ) { - if ( v->dockWidget() ) views.push_back( v ); + for ( auto v : project->descendantsOfType() ) + { + if ( v->dockWidget() ) views.push_back( v ); + } } return views; diff --git a/ApplicationLibCode/UserInterface/RiuPlotMainWindow.cpp b/ApplicationLibCode/UserInterface/RiuPlotMainWindow.cpp index 6436824c01..c20a8942ae 100644 --- a/ApplicationLibCode/UserInterface/RiuPlotMainWindow.cpp +++ b/ApplicationLibCode/UserInterface/RiuPlotMainWindow.cpp @@ -797,9 +797,13 @@ std::vector RiuPlotMainWindow::viewWindows() { std::vector views; - for ( auto v : RimProject::current()->descendantsOfType() ) + // Project can be null while it is being torn down. + if ( auto project = RimProject::current() ) { - if ( v->dockWidget() ) views.push_back( v ); + for ( auto v : project->descendantsOfType() ) + { + if ( v->dockWidget() ) views.push_back( v ); + } } return views;