diff options
author | Andrei Karas <akaras@inbox.ru> | 2016-03-21 02:51:37 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2016-03-21 02:51:37 +0300 |
commit | e7ebc6c703cd31577bd78f7b133ba18c5dfab1a9 (patch) | |
tree | cac38b119279d8201d9026a359e3ea7f717628bb /src/gui/windows | |
parent | 985a6b7f5374f3d7310f3d6cec95874f2f3d81b8 (diff) | |
download | manaplus-e7ebc6c703cd31577bd78f7b133ba18c5dfab1a9.tar.gz manaplus-e7ebc6c703cd31577bd78f7b133ba18c5dfab1a9.tar.bz2 manaplus-e7ebc6c703cd31577bd78f7b133ba18c5dfab1a9.tar.xz manaplus-e7ebc6c703cd31577bd78f7b133ba18c5dfab1a9.zip |
Fix possible crash in skill cooldowns.
Diffstat (limited to 'src/gui/windows')
-rw-r--r-- | src/gui/windows/skilldialog.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gui/windows/skilldialog.cpp b/src/gui/windows/skilldialog.cpp index c5eb45c02..a11e0b5aa 100644 --- a/src/gui/windows/skilldialog.cpp +++ b/src/gui/windows/skilldialog.cpp @@ -849,7 +849,7 @@ void SkillDialog::addSkillDuration(SkillInfo *const skill) void SkillDialog::slowLogic() { - FOR_EACH (std::vector<SkillInfo*>::iterator, it, mDurations) + FOR_EACH_SAFE (std::vector<SkillInfo*>::iterator, it, mDurations) { SkillInfo *const skill = *it; if (skill) @@ -861,6 +861,8 @@ void SkillDialog::slowLogic() skill->cooldown = 0; skill->duration = 0; skill->durationTime = 0; + if (it == mDurations.end()) + return; if (it != mDurations.begin()) -- it; } |