From: habu Date: Tue, 30 Apr 2013 11:32:47 +0000 (+0000) Subject: Fix crash bug when resizing sub-window after death (Ticket #31239) X-Git-Tag: v2.1.3~89 X-Git-Url: http://git.osdn.net/view?p=hengband%2Fhengband.git;a=commitdiff_plain;h=f6586f74ed9b84a4a2b03baa3940b59e808f6720 Fix crash bug when resizing sub-window after death (Ticket #31239) 死亡直後にセーブしているが、save_player()を呼ぶとダンジョンマップ情報 の更新フラグが立つ。これをメイン画面に反映していないためサブウィンドウ をリサイズした時にサブウィンドウ側にダンジョンマップを描画しようとして しまい、結果サブウィンドウからはみ出した位置に表示しようとして領域外ア クセスエラーとなっていた セーブ後にhandle_stuff()を呼ぶことでマップ情報を更新するようにして対処 --- diff --git a/src/effects.c b/src/effects.c index dc936aee6..98c7a4954 100644 --- a/src/effects.c +++ b/src/effects.c @@ -5212,8 +5212,6 @@ int take_hit(int damage_type, int damage, cptr hit_from, int monspell) /* Window stuff */ p_ptr->window |= (PW_PLAYER); - handle_stuff(); - if (damage_type != DAMAGE_GENO && p_ptr->chp == 0) { chg_virtue(V_SACRIFICE, 1); @@ -5235,6 +5233,8 @@ int take_hit(int damage_type, int damage, cptr hit_from, int monspell) chg_virtue(V_SACRIFICE, 10); + handle_stuff(); + /* Leaving */ p_ptr->leaving = TRUE; @@ -5472,6 +5472,8 @@ int take_hit(int damage_type, int damage, cptr hit_from, int monspell) return damage; } + handle_stuff(); + /* Hitpoint warning */ if (p_ptr->chp < warning) {