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.
This commit is contained in:
parent
26a3573aea
commit
78f2f2f142
1 changed files with 7 additions and 0 deletions
|
@ -236,6 +236,11 @@ int main ( int argc, char **argv )
|
||||||
// FIXME: add other, more specific
|
// FIXME: add other, more specific
|
||||||
// exceptions.
|
// exceptions.
|
||||||
try {
|
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);
|
std::set_terminate(fg_terminate);
|
||||||
atexit(fgExitCleanup);
|
atexit(fgExitCleanup);
|
||||||
if (fgviewer)
|
if (fgviewer)
|
||||||
|
@ -277,6 +282,8 @@ void fgExitCleanup() {
|
||||||
if (_bootstrap_OSInit != 0)
|
if (_bootstrap_OSInit != 0)
|
||||||
fgSetMouseCursor(MOUSE_CURSOR_POINTER);
|
fgSetMouseCursor(MOUSE_CURSOR_POINTER);
|
||||||
|
|
||||||
|
// on the common exit path globals is already deleted, and NULL,
|
||||||
|
// so this only happens on error paths.
|
||||||
delete globals;
|
delete globals;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue