]> git.mxchange.org Git - flightgear.git/commitdiff
Don't crash if WindowBuild fails.
authorJames Turner <zakalawe@mac.com>
Sat, 11 Dec 2010 14:29:05 +0000 (14:29 +0000)
committerJames Turner <zakalawe@mac.com>
Sat, 11 Dec 2010 14:29:05 +0000 (14:29 +0000)
src/Main/CameraGroup.cxx
src/Main/WindowBuilder.cxx

index 1c0bb6ccab7166f5ff4d7b81f3610310fce1e852..e80e0c564bbc1cf61b5520055aa9cea426ea96a2 100644 (file)
@@ -646,15 +646,16 @@ CameraInfo* CameraGroup::buildGUICamera(SGPropertyNode* cameraNode,
     const SGPropertyNode* windowNode = (cameraNode
                                         ? cameraNode->getNode("window")
                                         : 0);
-    if (!window) {
-        if (windowNode) {
-            // New style window declaration / definition
-            window = wBuild->buildWindow(windowNode);
-            
-        } else {
-            return 0;
-        }
+    if (!window && windowNode) {
+      // New style window declaration / definition
+      window = wBuild->buildWindow(windowNode);
+    }
+    
+    if (!window) { // buildWindow can fail
+      SG_LOG(SG_GENERAL, SG_WARN, "CameraGroup::buildGUICamera: failed to build a window");
+      return NULL;
     }
+    
     Camera* camera = new Camera;
     camera->setAllowEventFocus(false);
     camera->setGraphicsContext(window->gc.get());
index d1c90618f3a25c7d66e9d34e87c355f4eff73df1..740671cd56884ec00eceeca3238ded3ddca801aa 100644 (file)
@@ -224,12 +224,14 @@ GraphicsWindow* WindowBuilder::getDefaultWindow()
     GraphicsContext::Traits* traits
         = new GraphicsContext::Traits(*defaultTraits);
     traits->windowName = "FlightGear";
+    
     GraphicsContext* gc = GraphicsContext::createGraphicsContext(traits);
     if (gc) {
         defaultWindow = WindowSystemAdapter::getWSA()
             ->registerWindow(gc, defaultWindowName);
         return defaultWindow;
     } else {
+        SG_LOG(SG_GENERAL, SG_ALERT, "getDefaultWindow: failed to create GraphicsContext");
         return 0;
     }
 }