Follow-up Comment #3, bug #24022 (project wesnoth):

Only that there's an access violation reading a memory location. The crash
happens while destroying the fake_unit_ptr, but the access violation happens
inside the std libraries, which I find hard to read.

Hopefull I got the mark-up correct, here's the call stack from MSVC:


wesnoth.exe!std::_Iterator_base12::_Adopt(const std::_Container_base12 *
_Parent) Line 165       C++
wesnoth.exe!std::_Deque_const_iterator<std::_Deque_val<std::_Deque_simple_types<unit
const *> > >::_Setcont(const std::_Deque_val<std::_Deque_simple_types<unit
const *> > * _Pdeque) Line 513  C++
wesnoth.exe!std::_Deque_const_iterator<std::_Deque_val<std::_Deque_simple_types<unit
const *> >
>::_Deque_const_iterator<std::_Deque_val<std::_Deque_simple_types<unit const
*> > >(unsigned int _Off, const std::_Container_base12 * _Pdeque) Line
305     C++
wesnoth.exe!std::_Deque_iterator<std::_Deque_val<std::_Deque_simple_types<unit
const *> > >::_Deque_iterator<std::_Deque_val<std::_Deque_simple_types<unit
const *> > >(unsigned int _Off, const std::_Container_base12 * _Pdeque) Line
590     C++
wesnoth.exe!std::deque<unit const *,std::allocator<unit const *> >::end() Line
1311    C++
wesnoth.exe!fake_unit_manager::remove_temporary_unit(const unit * u) Line
46      C++
wesnoth.exe!fake_unit_ptr::remove_from_fake_unit_manager() Line 130     C++
wesnoth.exe!fake_unit_ptr::~fake_unit_ptr() Line 106    C++
wesnoth.exe!wb::recruit::~recruit() Line 99     C++
[External Code] 
wesnoth.exe!boost::detail::sp_ms_deleter<wb::recruit>::destroy() Line 61        
C++
wesnoth.exe!boost::detail::sp_ms_deleter<wb::recruit>::operator()(wb::recruit
* __formal) Line 92     C++
wesnoth.exe!boost::detail::sp_counted_impl_pd<wb::recruit
*,boost::detail::sp_ms_deleter<wb::recruit> >::dispose() Line 154       C++
wesnoth.exe!boost::detail::sp_counted_base::release() Line 103  C++
wesnoth.exe!boost::detail::shared_count::~shared_count() Line 471       C++
[External Code] 
wesnoth.exe!boost::detail::allocator::destroy<boost::shared_ptr<wb::action>
>(const boost::shared_ptr<wb::action> * p) Line 175     C++
wesnoth.exe!boost::multi_index::detail::index_base<boost::shared_ptr<wb::action>,boost::multi_index::indexed_by<boost::multi_index::random_access<boost::multi_index::tag<wb::side_actions_container::chronological,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>
>,boost::multi_index::hashed_non_unique<boost::multi_index::tag<wb::side_actions_container::by_unit,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::multi_index::const_mem_fun<wb::action,unsigned
int,{wb::action::get_unit_id,0}>,boost::mpl::na,boost::mpl::na>,boost::multi_index::hashed_non_unique<boost::multi_index::tag<wb::side_actions_container::by_hex,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::multi_index::const_mem_fun<wb::action,map_location,{wb::action::`vcall'{32}',0}>,boost::mpl::na,boost::mpl::na>,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,std::allocator<boost::shared_ptr<wb::action>
>
>::delete_node_(boost::multi_index::detail::index_node_base<boost::shared_ptr<wb::action>,std::allocator<boost::shared_ptr<wb::action>
> > * x) Line 166       C++
wesnoth.exe!boost::multi_index::multi_index_container<boost::shared_ptr<wb::action>,boost::multi_index::indexed_by<boost::multi_index::random_access<boost::multi_index::tag<wb::side_actions_container::chronological,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>
>,boost::multi_index::hashed_non_unique<boost::multi_index::tag<wb::side_actions_container::by_unit,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::multi_index::const_mem_fun<wb::action,unsigned
int,{wb::action::get_unit_id,0}>,boost::mpl::na,boost::mpl::na>,boost::multi_index::hashed_non_unique<boost::multi_index::tag<wb::side_actions_container::by_hex,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::multi_index::const_mem_fun<wb::action,map_location,{wb::action::`vcall'{32}',0}>,boost::mpl::na,boost::mpl::na>,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,std::allocator<boost::shared_ptr<wb::action>
>
>::delete_node_(boost::multi_index::detail::random_access_index_node<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::index_node_base<boost::shared_ptr<wb::action>,std::allocator<boost::shared_ptr<wb::action>
>
>,boost::multi_index::detail::hashed_non_unique_tag>,boost::multi_index::detail::hashed_non_unique_tag>
> * x) Line 767 C++
wesnoth.exe!boost::multi_index::detail::index_base<boost::shared_ptr<wb::action>,boost::multi_index::indexed_by<boost::multi_index::random_access<boost::multi_index::tag<wb::side_actions_container::chronological,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>
>,boost::multi_index::hashed_non_unique<boost::multi_index::tag<wb::side_actions_container::by_unit,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::multi_index::const_mem_fun<wb::action,unsigned
int,{wb::action::get_unit_id,0}>,boost::mpl::na,boost::mpl::na>,boost::multi_index::hashed_non_unique<boost::multi_index::tag<wb::side_actions_container::by_hex,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::multi_index::const_mem_fun<wb::action,map_location,{wb::action::`vcall'{32}',0}>,boost::mpl::na,boost::mpl::na>,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,std::allocator<boost::shared_ptr<wb::action>
>
>::final_delete_node_(boost::multi_index::detail::random_access_index_node<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::index_node_base<boost::shared_ptr<wb::action>,std::allocator<boost::shared_ptr<wb::action>
>
>,boost::multi_index::detail::hashed_non_unique_tag>,boost::multi_index::detail::hashed_non_unique_tag>
> * x) Line 261 C++
wesnoth.exe!boost::multi_index::detail::random_access_index<boost::multi_index::detail::nth_layer<1,boost::shared_ptr<wb::action>,boost::multi_index::indexed_by<boost::multi_index::random_access<boost::multi_index::tag<wb::side_actions_container::chronological,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>
>,boost::multi_index::hashed_non_unique<boost::multi_index::tag<wb::side_actions_container::by_unit,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::multi_index::const_mem_fun<wb::action,unsigned
int,{wb::action::get_unit_id,0}>,boost::mpl::na,boost::mpl::na>,boost::multi_index::hashed_non_unique<boost::multi_index::tag<wb::side_actions_container::by_hex,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::multi_index::const_mem_fun<wb::action,map_location,{wb::action::`vcall'{32}',0}>,boost::mpl::na,boost::mpl::na>,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,std::allocator<boost::shared_ptr<wb::action>
> >,boost::mpl::vector1<wb::side_actions_container::chronological>
>::delete_all_nodes_() Line 808 C++
wesnoth.exe!boost::multi_index::multi_index_container<boost::shared_ptr<wb::action>,boost::multi_index::indexed_by<boost::multi_index::random_access<boost::multi_index::tag<wb::side_actions_container::chronological,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>
>,boost::multi_index::hashed_non_unique<boost::multi_index::tag<wb::side_actions_container::by_unit,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::multi_index::const_mem_fun<wb::action,unsigned
int,{wb::action::get_unit_id,0}>,boost::mpl::na,boost::mpl::na>,boost::multi_index::hashed_non_unique<boost::multi_index::tag<wb::side_actions_container::by_hex,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::multi_index::const_mem_fun<wb::action,map_location,{wb::action::`vcall'{32}',0}>,boost::mpl::na,boost::mpl::na>,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,std::allocator<boost::shared_ptr<wb::action>
> >::delete_all_nodes_() Line 773       C++
wesnoth.exe!boost::multi_index::multi_index_container<boost::shared_ptr<wb::action>,boost::multi_index::indexed_by<boost::multi_index::random_access<boost::multi_index::tag<wb::side_actions_container::chronological,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>
>,boost::multi_index::hashed_non_unique<boost::multi_index::tag<wb::side_actions_container::by_unit,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::multi_index::const_mem_fun<wb::action,unsigned
int,{wb::action::get_unit_id,0}>,boost::mpl::na,boost::mpl::na>,boost::multi_index::hashed_non_unique<boost::multi_index::tag<wb::side_actions_container::by_hex,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::multi_index::const_mem_fun<wb::action,map_location,{wb::action::`vcall'{32}',0}>,boost::mpl::na,boost::mpl::na>,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,std::allocator<boost::shared_ptr<wb::action>
>
>::~multi_index_container<boost::shared_ptr<wb::action>,boost::multi_index::indexed_by<boost::multi_index::random_access<boost::multi_index::tag<wb::side_actions_container::chronological,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>
>,boost::multi_index::hashed_non_unique<boost::multi_index::tag<wb::side_actions_container::by_unit,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::multi_index::const_mem_fun<wb::action,unsigned
int,{wb::action::get_unit_id,0}>,boost::mpl::na,boost::mpl::na>,boost::multi_index::hashed_non_unique<boost::multi_index::tag<wb::side_actions_container::by_hex,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::multi_index::const_mem_fun<wb::action,map_location,{wb::action::`vcall'{32}',0}>,boost::mpl::na,boost::mpl::na>,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,std::allocator<boost::shared_ptr<wb::action>
> >() Line 297  C++
[External Code] 
wesnoth.exe!boost::checked_delete<wb::side_actions>(wb::side_actions * x) Line
34      C++
wesnoth.exe!boost::detail::sp_counted_impl_p<wb::side_actions>::dispose() Line
78      C++
wesnoth.exe!boost::detail::sp_counted_base::release() Line 103  C++
wesnoth.exe!boost::detail::shared_count::~shared_count() Line 471       C++
[External Code] 
wesnoth.exe!team::~team() Line 303      C++
[External Code] 
wesnoth.exe!game_board::~game_board() Line 53   C++
wesnoth.exe!game_state::~game_state() Line 96   C++
[External Code] 
wesnoth.exe!boost::checked_delete<game_state>(game_state * x) Line 34   C++
wesnoth.exe!boost::scoped_ptr<game_state>::~scoped_ptr<game_state>() Line
82      C++
wesnoth.exe!play_controller::~play_controller() Line 215        C++
wesnoth.exe!playsingle_controller::~playsingle_controller() Line 118    C++
[External Code] 
[Frames below may be incorrect and/or missing, no symbols loaded for
vcruntime140d.dll]      
wesnoth.exe!throw_quit_game_exception() Line 119        C++
wesnoth.exe!hotkey::execute_command(display & disp, const
hotkey::hotkey_command & command, hotkey::command_executor * executor, int
index) Line 708 C++
wesnoth.exe!hotkey::key_event_execute(display & disp, const SDL_KeyboardEvent
& event, hotkey::command_executor * executor) Line 594  C++
wesnoth.exe!hotkey::key_event(display & disp, const SDL_KeyboardEvent & event,
hotkey::command_executor * executor) Line 538   C++
wesnoth.exe!controller_base::handle_event(const SDL_Event & event) Line
59      C++
wesnoth.exe!events::pump() Line 431     C++
wesnoth.exe!controller_base::play_slice(bool is_delay_enabled) Line 217 C++
wesnoth.exe!play_controller::play_slice_catch() Line 1073       C++
wesnoth.exe!playsingle_controller::play_human_turn() Line 443   C++
wesnoth.exe!playsingle_controller::play_side_impl() Line 360    C++
wesnoth.exe!play_controller::play_side() Line 1163      C++
wesnoth.exe!play_controller::play_turn() Line 1202      C++
wesnoth.exe!playsingle_controller::play_scenario_main_loop() Line 169   C++
wesnoth.exe!playsingle_controller::play_scenario(const config & level) Line
228     C++
wesnoth.exe!campaign_controller::playsingle_scenario(end_level_data &
end_level) Line 200     C++
wesnoth.exe!campaign_controller::play_game() Line 288   C++
wesnoth.exe!game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA reload)
Line 1099       C++
wesnoth.exe!do_gameloop(const
std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char>
>,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> > > & args) Line 820  C++
wesnoth.exe!SDL_main(int argc, char * * argv) Line 970  C++
[External Code] 


    _______________________________________________________

Reply to this item at:

  <http://gna.org/bugs/?24022>

_______________________________________________
  Message sent via/by Gna!
  http://gna.org/


_______________________________________________
Wesnoth-bugs mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-bugs

Reply via email to