summaryrefslogtreecommitdiff
path: root/indra/newview/llvoavatarself.cpp
diff options
context:
space:
mode:
authorAndrey Lihatskiy <alihatskiy@productengine.com>2024-04-24 20:22:45 +0300
committerGitHub <noreply@github.com>2024-04-24 20:22:45 +0300
commit4c54488470a37f53f46c9d4694644a10b92b9790 (patch)
tree494487bbc57c79d17921b7443003d2a118e24ddb /indra/newview/llvoavatarself.cpp
parent398369233fc2621eb447701e26082057fb0c97d7 (diff)
parent85f2447b3ddf7e4b91cd5963cb2e7668d48ab2a9 (diff)
Merge pull request #1316 from secondlife/marchcat/a-merge
Release (Maint YZ) -> Maint A merge
Diffstat (limited to 'indra/newview/llvoavatarself.cpp')
-rw-r--r--indra/newview/llvoavatarself.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp
index b71b5022fc..dc07c2d711 100644
--- a/indra/newview/llvoavatarself.cpp
+++ b/indra/newview/llvoavatarself.cpp
@@ -834,7 +834,11 @@ void LLVOAvatarSelf::stopMotionFromSource(const LLUUID& source_id)
for (AnimSourceIterator motion_it = mAnimationSources.find(source_id); motion_it != mAnimationSources.end(); )
{
gAgent.sendAnimationRequest(motion_it->second, ANIM_REQUEST_STOP);
- mAnimationSources.erase(motion_it++);
+ mAnimationSources.erase(motion_it);
+ // Must find() after each erase() to deal with potential iterator invalidation
+ // This also ensures that we don't go past the end of this source's animations
+ // into those of another source.
+ motion_it = mAnimationSources.find(source_id);
}