From 76815744fe4186ab1c32fc74c6f05038b1e9c7eb Mon Sep 17 00:00:00 2001 From: Mark de Wever Date: Thu, 18 Mar 2010 20:16:07 +0000 Subject: [PATCH] Fix logging replay crashes. Fixes bug #15601, applies patch #1525. --- changelog | 1 + src/replay.cpp | 11 ++++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/changelog b/changelog index c6c902837ae..1c7c38d9e4d 100644 --- a/changelog +++ b/changelog @@ -6,6 +6,7 @@ Version 1.7.15+svn: * Miscellaneous and bug fixes: * Defaulted log level to error again * Fix bug #14114: checksum operations fail against certain scenario events + * Fix bug #15601: replay crashes when replay log messages are enabled Version 1.7.15-1.8rc1: * AI: diff --git a/src/replay.cpp b/src/replay.cpp index 6ab746a5cbe..7259d15cc82 100644 --- a/src/replay.cpp +++ b/src/replay.cpp @@ -1134,17 +1134,18 @@ bool do_replay_handle(int side_num, const std::string &do_untill) rand_rng::set_seed(seed); LOG_REPLAY << "Replaying attack with seed " << seed << "\n"; - DBG_REPLAY << "Attacker XP (before attack): " << u->second.experience() << "\n";; + DBG_REPLAY << "Attacker XP (before attack): " << u->second.experience() << "\n"; attack_unit(src, dst, weapon_num, def_weapon_num, !get_replay_source().is_skipping()); - DBG_REPLAY << "Attacker XP (after attack): " << u->second.experience() << "\n";; - u = resources::units->find(src); tgt = resources::units->find(dst); - if (u.valid() && u->second.advances()) { - get_replay_source().add_expected_advancement(u->first); + if(u.valid()){ + DBG_REPLAY << "Attacker XP (after attack): " << u->second.experience() << "\n"; + if(u->second.advances()) { + get_replay_source().add_expected_advancement(u->first); + } } DBG_REPLAY << "expected_advancements.size: " << get_replay_source().expected_advancements().size() << "\n";