SL-20714 Crash accessing mControlAVBridge
Looks like control avatar was recreated after cleanup then object was deletedmeow-7.2.2
parent
810a3d24c2
commit
8c1aa6d662
|
|
@ -4229,7 +4229,7 @@ void process_object_animation(LLMessageSystem *mesgsys, void **user_data)
|
|||
LLObjectSignaledAnimationMap::instance().getMap()[uuid] = signaled_anims;
|
||||
|
||||
LLViewerObject *objp = gObjectList.findObject(uuid);
|
||||
if (!objp)
|
||||
if (!objp || objp->isDead())
|
||||
{
|
||||
LL_DEBUGS("AnimatedObjectsNotify") << "Received animation state for unknown object " << uuid << LL_ENDL;
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -391,6 +391,7 @@ LLViewerObject::~LLViewerObject()
|
|||
sNumObjects--;
|
||||
sNumZombieObjects--;
|
||||
llassert(mChildList.size() == 0);
|
||||
llassert(mControlAvatar.isNull()); // Should have been cleaned by now
|
||||
|
||||
clearInventoryListeners();
|
||||
}
|
||||
|
|
@ -3106,6 +3107,10 @@ void LLViewerObject::updateControlAvatar()
|
|||
return;
|
||||
}
|
||||
|
||||
// caller isn't supposed to operate on a dead object,
|
||||
// avatar was already cleaned up
|
||||
llassert(!isDead());
|
||||
|
||||
bool should_have_control_avatar = false;
|
||||
if (is_animated_object)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -5494,6 +5494,11 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
|
|||
LL_PROFILE_ZONE_SCOPED_CATEGORY_VOLUME;
|
||||
llassert(!gCubeSnapshot);
|
||||
|
||||
if (group->isDead())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (group->changeLOD())
|
||||
{
|
||||
group->mLastUpdateDistance = group->mDistance;
|
||||
|
|
@ -5577,7 +5582,7 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
|
|||
|
||||
LLVOVolume* vobj = drawablep->getVOVolume();
|
||||
|
||||
if (!vobj)
|
||||
if (!vobj || vobj->isDead())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue