mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2024-12-29 12:20:41 +00:00
Prevent iterator invalidation when cleaning up summons
This commit is contained in:
parent
dc1fe62dde
commit
161e042e2a
@ -277,8 +277,9 @@ namespace MWGui
|
||||
auto it = std::find_if(summons.begin(), summons.end(), [&] (const auto& entry) { return entry.second == creatureStats.getActorId(); });
|
||||
if(it != summons.end())
|
||||
{
|
||||
MWMechanics::purgeSummonEffect(summoner, *it);
|
||||
auto summon = *it;
|
||||
summons.erase(it);
|
||||
MWMechanics::purgeSummonEffect(summoner, summon);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -125,8 +125,9 @@ namespace MWMechanics
|
||||
if (!ptr.isEmpty() && ptr.getClass().getCreatureStats(ptr).isDead() && ptr.getClass().getCreatureStats(ptr).isDeathAnimationFinished())
|
||||
{
|
||||
// Purge the magic effect so a new creature can be summoned if desired
|
||||
purgeSummonEffect(summoner, *it);
|
||||
auto summon = *it;
|
||||
creatureMap.erase(it++);
|
||||
purgeSummonEffect(summoner, summon);
|
||||
}
|
||||
else
|
||||
++it;
|
||||
|
Loading…
Reference in New Issue
Block a user