From 78f2f2f14218bbc18957f71456a62e44c0233605 Mon Sep 17 00:00:00 2001 From: James Turner Date: Tue, 15 Oct 2013 22:02:36 +0100 Subject: [PATCH] Work-around for issue 1231. Force sglog() to be initialised before at exit handler is registered, so logging can be used from inside our exit handler. --- src/Main/bootstrap.cxx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Main/bootstrap.cxx b/src/Main/bootstrap.cxx index 73fb6fd5e..0a68e2345 100644 --- a/src/Main/bootstrap.cxx +++ b/src/Main/bootstrap.cxx @@ -236,6 +236,11 @@ int main ( int argc, char **argv ) // FIXME: add other, more specific // exceptions. try { + // http://code.google.com/p/flightgear-bugs/issues/detail?id=1231 + // ensure sglog is inited before atexit() is registered, so logging + // is possible inside fgExitCleanup + sglog(); + std::set_terminate(fg_terminate); atexit(fgExitCleanup); if (fgviewer) @@ -277,6 +282,8 @@ void fgExitCleanup() { if (_bootstrap_OSInit != 0) fgSetMouseCursor(MOUSE_CURSOR_POINTER); + // on the common exit path globals is already deleted, and NULL, + // so this only happens on error paths. delete globals; }