No description
91ddbf6a7c
VRManager::instance() was using a function scoped static osg::ref_ptr to store the VRManager instance. However it needs to be used from fgOSCloseWindow(), which is called from an atexit handler, and C++11 specifies that static object destruction and atexit handlers are reverse sequenced, i.e. a static object initialised after an atexit call will be destroyed before the atexit callback is called. On Windows this can result in the osg::ref_ptr being destroyed (and hence set to NULL) before fgOSCloseWindow() tries to call destroyAndWait() on the instance. Fix the resulting seg fault by moving the ref_ptr object to static file scope so it is default constructed before the atexit call, and using only a simple static bool to initialise it on first call to VRManager::instance(). Reported-by: Alan Teeder <ajteeder@v-twin.org.uk> |
||
---|---|---|
3rdparty | ||
CMakeModules | ||
docs-mini | ||
examples | ||
icons | ||
man | ||
package | ||
scripts | ||
src | ||
test_suite | ||
utils | ||
.clang-format | ||
.gitignore | ||
AUTHORS | ||
ChangeLog | ||
CMakeLists.txt | ||
COPYING | ||
flightgear-version | ||
INSTALL | ||
NEWS | ||
README | ||
README.cmake | ||
README.msvc | ||
README.OSG | ||
README.plib | ||
README.SimGear | ||
README.sound | ||
Thanks |
Welcome to the FlightGear Flight Simulator project. =================================================== The primary web page for this project is: http://www.flightgear.org For basic installation instructions see the "INSTALL" file. Before you can run FlightGear you will also need to download and install the "base" package which is a collection of textures, sounds, sample scenery, and other data files needed by the sim. For additional install help for specific platforms please browse the "docs-mini/" subdirectory. More complete documentation is available from our web page as a separate distribution. Please take a look at the "Thanks" file for a list of people who have contributed to this project. If you have contributed something but don't find your name in this file. Please send a polite reminder to http://www.flightgear.org/~curt For a summary of changes/additions by version see the "NEWS" file. This project is GPL'd. For complete details on our licensing please see the "COPYING" file. For information on available mailing lists, mailing list archives, and other available source code and documenation, please visit our web site. FlightGear is a product of the collaboration of large international group of volunteers. FlightGear is a work in progress. FlightGear comes with no warrantee. We hope you enjoy FlightGear and/or find it of some value!