Hi, I found another bug. While exiting fg, I got a crash. The crashed function is called by FGAIBase::~FGAIBase() line 71: fgSetString("/ai/models/model-removed", props->getPath()); This calls SGPropertyNode::getNode (const char * relative_path, bool create) where _path_cache is referenced. But this object seems to be destructed and SGPropertyNode * result = _path_cache->get(relative_path); (props.cxx l. 61) crashes.
Here the call stack: FlightGear.exe!SGPropertyNode::hash_table::get(const char * key=0x01230c78) Zeile 2230 + 0x3 Bytes C++ > FlightGear.exe!SGPropertyNode::getNode(const char * relative_path=0x01230c78, bool create=true) Zeile 1746 + 0x12 Bytes C++ FlightGear.exe!SGPropertyNode::setStringValue(const char * relative_path=0x01230c78, const char * value=0x1ded48f0) Zeile 1936 + 0x12 Bytes C++ FlightGear.exe!fgSetString(const char * name=0x01230c78, const char * val=0x1ded48f0) Zeile 787 C++ FlightGear.exe!FGAIBase::~FGAIBase() Zeile 80 + 0x1f Bytes C++ FlightGear.exe!FGAIMultiplayer::~FGAIMultiplayer() Zeile 44 + 0x5d Bytes C++ FlightGear.exe!FGAIMultiplayer::`scalar deleting destructor'() + 0x2b Bytes C++ FlightGear.exe!SGSharedPtr<FGAIMultiplayer>::put() Zeile 93 + 0x8e Bytes C++ FlightGear.exe!SGSharedPtr<FGAIMultiplayer>::~SGSharedPtr<FGAIMultiplayer>() Zeile 58 + 0x2b Bytes C++ FlightGear.exe!std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,SGSharedPtr<FGAIMultiplayer> >::~pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,SGSharedPtr<FGAIMultiplayer> >() + 0x54 Bytes C++ FlightGear.exe!std::_Tree_nod<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,SGSharedPtr<FGAIMultiplayer>,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > const ,SGSharedPtr<FGAIMultiplayer> > >,0> >::_Node::~_Node() + 0x2e Bytes C++ FlightGear.exe!std::_Tree_nod<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,SGSharedPtr<FGAIMultiplayer>,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > const ,SGSharedPtr<FGAIMultiplayer> > >,0> >::_Node::`scalar deleting destructor'() + 0x2b Bytes C++ FlightGear.exe!std::_Destroy<std::_Tree_nod<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,SGSharedPtr<FGAIMultiplayer>,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > const ,SGSharedPtr<FGAIMultiplayer> > >,0> >::_Node>(std::_Tree_nod<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,SGSharedPtr<FGAIMultiplayer>,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > const ,SGSharedPtr<FGAIMultiplayer> > >,0> >::_Node * _Ptr=0x157a6f98) Zeile 61 C++ FlightGear.exe!std::allocator<std::_Tree_nod<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,SGSharedPtr<FGAIMultiplayer>,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > const ,SGSharedPtr<FGAIMultiplayer> > >,0> >::_Node>::destroy(std::_Tree_nod<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,SGSharedPtr<FGAIMultiplayer>,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > const ,SGSharedPtr<FGAIMultiplayer> > >,0> >::_Node * _Ptr=0x157a6f98) Zeile 161 + 0x9 Bytes C++ FlightGear.exe!std::_Tree<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,SGSharedPtr<FGAIMultiplayer>,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > const ,SGSharedPtr<FGAIMultiplayer> > >,0> >::_Erase(std::_Tree_nod<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,SGSharedPtr<FGAIMultiplayer>,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > const ,SGSharedPtr<FGAIMultiplayer> > >,0> >::_Node * _Rootnode=0x157a6f98) Zeile 1078 C++ FlightGear.exe!std::_Tree<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,SGSharedPtr<FGAIMultiplayer>,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > const ,SGSharedPtr<FGAIMultiplayer> > >,0> >::_Erase(std::_Tree_nod<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,SGSharedPtr<FGAIMultiplayer>,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > const ,SGSharedPtr<FGAIMultiplayer> > >,0> >::_Node * _Rootnode=0x1d06f700) Zeile 1076 C++ FlightGear.exe!std::_Tree<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,SGSharedPtr<FGAIMultiplayer>,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > const ,SGSharedPtr<FGAIMultiplayer> > >,0> >::clear() Zeile 955 C++ FlightGear.exe!FGMultiplayMgr::Close() Zeile 226 C++ FlightGear.exe!FGMultiplay::close() Zeile 292 C++ FlightGear.exe!FGIO::shutdown_all() Zeile 351 + 0xf Bytes C++ FlightGear.exe!FGIO::~FGIO() Zeile 85 C++ FlightGear.exe!FGIO::`scalar deleting destructor'() + 0x2b Bytes C++ FlightGear.exe!FGGlobals::~FGGlobals() Zeile 107 + 0x3a Bytes C++ FlightGear.exe!FGGlobals::`scalar deleting destructor'() + 0x2b Bytes C++ FlightGear.exe!fgExitCleanup() Zeile 232 + 0x36 Bytes C++ Maik ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Flightgear-devel mailing list Flightgear-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/flightgear-devel