Fix crash in LLControlAvatar::matchVolumeTransform() from Kitty Barnett
This commit is contained in:
@@ -325,6 +325,20 @@ void LLControlAvatar::markForDeath()
|
||||
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, LLWorld &world, const F64 &time)
|
||||
{
|
||||
if (mMarkedForDeath)
|
||||
|
||||
@@ -52,6 +52,7 @@ public:
|
||||
// Delayed kill so we don't make graphics pipeline unhappy calling
|
||||
// markDead() inside other graphics pipeline operations.
|
||||
void markForDeath();
|
||||
void markDead() override;
|
||||
|
||||
void idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time) override;
|
||||
BOOL updateCharacter(LLAgent &agent) override;
|
||||
|
||||
Reference in New Issue
Block a user