Hi,
had anyone a look on this? We should fix this.
- Can we assure to call this destructor first and then destruct _path_cache?
- Why is it necessary to set the path to "/ai/models/model-removed" ? 
Wouldn't it work without this?
Maik


Maik Justus schrieb am 14.11.2006 21:42:
> 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
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/flightgear-devel
>
>
>   


-------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to