From 1ee8b9e5684cac2bf6db62b62bde5e9cfe3d595d Mon Sep 17 00:00:00 2001
From: James Turner <james@flightgear.org>
Date: Tue, 23 Mar 2021 17:08:34 +0000
Subject: [PATCH] View tweaks to try to understand crash with no camera group

Sentry-Id: FLIGHTGEAR-H9F
---
 src/Viewer/fg_os_osgviewer.cxx | 1 +
 src/Viewer/viewmgr.cxx         | 5 +++++
 2 files changed, 6 insertions(+)

diff --git a/src/Viewer/fg_os_osgviewer.cxx b/src/Viewer/fg_os_osgviewer.cxx
index dd5b15129..600fbcf73 100644
--- a/src/Viewer/fg_os_osgviewer.cxx
+++ b/src/Viewer/fg_os_osgviewer.cxx
@@ -438,6 +438,7 @@ void fgOSCloseWindow()
         }
     }
     FGScenery::resetPagerSingleton();
+    flightgear::addSentryBreadcrumb("fgOSCloseWindow, clearing camera group", "info");
     flightgear::CameraGroup::setDefault(NULL);
     WindowSystemAdapter::setWSA(NULL);
     viewer = NULL;
diff --git a/src/Viewer/viewmgr.cxx b/src/Viewer/viewmgr.cxx
index 75b6f6aae..f39018bef 100644
--- a/src/Viewer/viewmgr.cxx
+++ b/src/Viewer/viewmgr.cxx
@@ -177,6 +177,11 @@ FGViewMgr::update (double dt)
 
 // update the camera now
     osg::ref_ptr<flightgear::CameraGroup> cameraGroup = flightgear::CameraGroup::getDefault();
+    if (!cameraGroup) {
+        // attempting to diagnose the cause of FLIGHTGEAR-H9F
+        throw sg_exception("FGViewMgr::update: no camera group exists");
+    }
+
     if (cameraGroup) {
         cameraGroup->setCameraParameters(currentView->get_v_fov(),
                                          cameraGroup->getMasterAspectRatio());