URL:
<http://gna.org/bugs/?19826>
Summary: Segfault when an ally execute a planned move of an
unit with 2 planned moves.
Project: Battle for Wesnoth
Submitted by: ejls
Submitted on: Mon 18 Jun 2012 01:40:31 AM GMT
Category: Bug
Severity: 4 - Important
Priority: 7 - High
Item Group: Whiteboard
Status: None
Privacy: Public
Assigned to: None
Originator Email:
Open/Closed: Open
Discussion Lock: Any
Release: r54444
Operating System: OpenBSD
_______________________________________________________
Details:
This only happen when the first move is executed. If the two moves are
executed at the same time (with an execute_all), there is no problem.
This make the whiteboard unusable for multi-turn moves.
Only the allies segfault, not the client executing the move.
bt:
#0 0x0000000001318fd8 in unit::underlying_id (this=0x0) at
/home/Epsilon012/wesnoth/trunk/src/unit.hpp:91
#1 0x000000000141eb91 in wb::(anonymous namespace)::move_owners_finder::visit
(this=0x7fffffff2860, move=...)
at /home/Epsilon012/wesnoth/trunk/src/whiteboard/manager.cpp:483
#2 0x000000000143496e in wb::move::accept (this=0x989d130, v=...) at
/home/Epsilon012/wesnoth/trunk/src/whiteboard/move.cpp:191
#3 0x0000000001425881 in wb::visitor::visitor_helper::process
(this=0x23256b0, itor=...) at
/home/Epsilon012/wesnoth/trunk/src/whiteboard/visitor.hpp:170
#4 0x00000000014286be in
wb::enable_visit_all<wb::visitor::visitor_helper>::visit_all_helper
(this=0x23256b0, reverse=false)
at /home/Epsilon012/wesnoth/trunk/src/whiteboard/visitor.hpp:121
#5 0x0000000001425ecb in
wb::enable_visit_all<wb::visitor::visitor_helper>::visit_all (this=0x23256b0)
at /home/Epsilon012/wesnoth/trunk/src/whiteboard/visitor.hpp:59
#6 0x00000000014258a9 in
wb::visitor::visitor_helper::visit_all_actions_helper (v=0x7fffffff2860) at
/home/Epsilon012/wesnoth/trunk/src/whiteboard/visitor.hpp:176
#7 0x0000000001425836 in wb::visitor::visit_all_actions (this=0x7fffffff2860)
at /home/Epsilon012/wesnoth/trunk/src/whiteboard/visitor.hpp:163
#8 0x000000000141eb14 in wb::(anonymous
namespace)::move_owners_finder::move_owners_finder (this=0x7fffffff2860)
at /home/Epsilon012/wesnoth/trunk/src/whiteboard/manager.cpp:474
#9 0x000000000141edca in wb::manager::pre_draw (this=0x6f1ab40) at
/home/Epsilon012/wesnoth/trunk/src/whiteboard/manager.cpp:503
#10 0x00000000011489eb in game_display::pre_draw (this=0x27655b0) at
/home/Epsilon012/wesnoth/trunk/src/game_display.cpp:270
#11 0x00000000014a4ff6 in display::draw (this=0x27655b0, update=true,
force=false) at /home/Epsilon012/wesnoth/trunk/src/display.cpp:2124
#12 0x0000000001606e6a in controller_base::play_slice (this=0x7fffffff7510,
is_delay_enabled=false) at
/home/Epsilon012/wesnoth/trunk/src/controller_base.cpp:247
#13 0x00000000013ce24e in unit_animator::wait_until (this=0x7fffffff2b50,
animation_time=200) at
/home/Epsilon012/wesnoth/trunk/src/unit_animation.cpp:1109
#14 0x0000000001869ff8 in move_unit_between (a=..., b=..., temp_unit=...,
step_num=0, step_left=1) at
/home/Epsilon012/wesnoth/trunk/src/unit_display.cpp:99
#15 0x000000000186abeb in unit_display::move_unit_step (path=..., i=0,
temp_unit=..., tm=...) at
/home/Epsilon012/wesnoth/trunk/src/unit_display.cpp:240
#16 0x0000000001504d92 in (anonymous namespace)::unit_mover::continue_movement
(this=0x7fffffff33a0, dest=...) at
/home/Epsilon012/wesnoth/trunk/src/actions.cpp:2760
#17 0x000000000150656d in (anonymous namespace)::make_a_move (steps=...,
show=true, flags=..., fog_shroud=true, skip_sight=true, empty_movement=false)
at /home/Epsilon012/wesnoth/trunk/src/actions.cpp:3082
#18 0x0000000001508f88 in move_unit (move_spectator=0x0, route=...,
move_recorder=0x0, undo_stack=0x0, show_move=true, next_unit=0x0,
continue_move=true,
should_clear_shroud=true, is_replay=true, units_sighted_result=0x0) at
/home/Epsilon012/wesnoth/trunk/src/actions.cpp:3429
#19 0x00000000012ea5ee in do_replay_handle (side_num=1, do_untill=...) at
/home/Epsilon012/wesnoth/trunk/src/replay.cpp:1057
#20 0x00000000012e7c18 in do_replay (side_num=1, obj=0x7fffffff6460) at
/home/Epsilon012/wesnoth/trunk/src/replay.cpp:767
#21 0x00000000012db82e in turn_info::handle_turn (this=0x7fffffff6420,
turn_end=@0x7fffffff5bcf: false, t=..., skip_replay=false, backlog=...)
at /home/Epsilon012/wesnoth/trunk/src/playturn.cpp:94
#22 0x00000000012dcbf5 in turn_info::process_network_data
(this=0x7fffffff6420, cfg=..., from=1, backlog=..., skip_replay=false)
#23 0x00000000012d0c4d in playmp_controller::play_network_turn
(this=0x7fffffff7510) at
/home/Epsilon012/wesnoth/trunk/src/playmp_controller.cpp:490
#24 0x00000000012cee9a in playmp_controller::play_side (this=0x7fffffff7510,
side_number=1, save=true) at
/home/Epsilon012/wesnoth/trunk/src/playmp_controller.cpp:135
#25 0x00000000012d5f05 in playsingle_controller::play_turn
(this=0x7fffffff7510, save=true) at
/home/Epsilon012/wesnoth/trunk/src/playsingle_controller.cpp:588
#26 0x00000000012d4775 in playsingle_controller::play_scenario
(this=0x7fffffff7510, story=..., skip_replay=false)
at /home/Epsilon012/wesnoth/trunk/src/playsingle_controller.cpp:388
#27 0x00000000012c66bf in playmp_scenario (game_config=...,
level=0x7fffffff7d40, disp=..., state_of_game=..., story=...,
skip_replay=false,
io_type=@0x7fffffff7c74: IO_CLIENT, end_level=...) at
/home/Epsilon012/wesnoth/trunk/src/playcampaign.cpp:166
#28 0x00000000012c8e27 in play_game (disp=..., gamestate=..., game_config=...,
io_type=IO_CLIENT, skip_replay=false)
at /home/Epsilon012/wesnoth/trunk/src/playcampaign.cpp:371
#29 0x0000000001274acd in enter_wait_mode (disp=..., game_config=...,
chat=..., gamelist=..., observe=false) at
/home/Epsilon012/wesnoth/trunk/src/multiplayer.cpp:454
#30 0x0000000001275b9b in enter_lobby_mode (disp=..., game_config=...,
chat=..., gamelist=...) at
/home/Epsilon012/wesnoth/trunk/src/multiplayer.cpp:633
#31 0x0000000001276556 in mp::start_client (disp=..., game_config=...,
host=...) at /home/Epsilon012/wesnoth/trunk/src/multiplayer.cpp:706
#32 0x0000000001136be6 in game_controller::play_multiplayer (this=0x234e2b0)
at /home/Epsilon012/wesnoth/trunk/src/game_controller.cpp:1032
#33 0x000000000102a852 in do_gameloop (argc=2, argv=0x7fffffffe668) at
/home/Epsilon012/wesnoth/trunk/src/game.cpp:537
#34 0x000000000102b049 in main (argc=2, argv=0x7fffffffe668) at
/home/Epsilon012/wesnoth/trunk/src/game.cpp:635
this is NULL in unit::underlying_id since move->get_unit() returns NULL.
_______________________________________________________
Reply to this item at:
<http://gna.org/bugs/?19826>
_______________________________________________
Message sent via/by Gna!
http://gna.org/
_______________________________________________
Wesnoth-bugs mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-bugs