Commit e6a9f965 authored by Rye Mutt's avatar Rye Mutt 🍞
Browse files

Fix crash in LLControlAvatar::matchVolumeTransform() from Kitty Barnett

parent 1206a9dd
...@@ -324,6 +324,20 @@ void LLControlAvatar::markForDeath() ...@@ -324,6 +324,20 @@ void LLControlAvatar::markForDeath()
mRootVolp = NULL; mRootVolp = NULL;
} }
void LLControlAvatar::markDead()
{
// NOTE: this can happen when the control avatar and root volume are on different regions and we're
// being called from the LLViewerRegion destructor due the region being dropped
// (due to being used as a vehicle and the move not yet being processed?)
if (mRootVolp)
{
mRootVolp->unlinkControlAvatar();
mRootVolp = nullptr;
}
LLVOAvatar::markDead();
}
void LLControlAvatar::idleUpdate(LLAgent &agent, const F64 &time) void LLControlAvatar::idleUpdate(LLAgent &agent, const F64 &time)
{ {
if (mMarkedForDeath) if (mMarkedForDeath)
......
...@@ -51,6 +51,7 @@ public: ...@@ -51,6 +51,7 @@ public:
// Delayed kill so we don't make graphics pipeline unhappy calling // Delayed kill so we don't make graphics pipeline unhappy calling
// markDead() inside other graphics pipeline operations. // markDead() inside other graphics pipeline operations.
void markForDeath(); void markForDeath();
void markDead() override;
void idleUpdate(LLAgent &agent, const F64 &time) override; void idleUpdate(LLAgent &agent, const F64 &time) override;
BOOL updateCharacter(LLAgent &agent) override; BOOL updateCharacter(LLAgent &agent) override;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment