diff options
-rw-r--r-- | indra/llcharacter/llkeyframemotion.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/indra/llcharacter/llkeyframemotion.cpp b/indra/llcharacter/llkeyframemotion.cpp index 6790f1ad56..b82734615f 100644 --- a/indra/llcharacter/llkeyframemotion.cpp +++ b/indra/llcharacter/llkeyframemotion.cpp @@ -2427,9 +2427,15 @@ void LLKeyframeMotion::onLoadComplete(const LLUUID& asset_uuid, LLCharacter* character = *char_iter; // look for an existing instance of this motion - LLKeyframeMotion* motionp = static_cast<LLKeyframeMotion*> (character->findMotion(asset_uuid)); - if (motionp) + if (LLMotion* asset = character->findMotion(asset_uuid)) { + LLKeyframeMotion* motionp = dynamic_cast<LLKeyframeMotion*>(asset); + if (!motionp) + { + // This motion is not LLKeyframeMotion (e.g., LLEmote) + return; + } + if (0 == status) { if (motionp->mAssetStatus == ASSET_LOADED) |