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

Reply via email to