#3413 Crash at removeFromLocalIDTable
Callstacks indicate that this happens only on shutdown. No point to erase items one at a time, just clear the list beforehand.master
parent
6dc819e22a
commit
b1bd083728
|
|
@ -1309,7 +1309,10 @@ void LLViewerObjectList::cleanupReferences(LLViewerObject *objectp)
|
|||
// << objectp->getRegion()->getHost().getPort() << LL_ENDL;
|
||||
//}
|
||||
|
||||
removeFromLocalIDTable(objectp);
|
||||
if (!mIndexAndLocalIDToUUID.empty())
|
||||
{
|
||||
removeFromLocalIDTable(objectp);
|
||||
}
|
||||
|
||||
if (objectp->onActiveList())
|
||||
{
|
||||
|
|
@ -1381,11 +1384,19 @@ void LLViewerObjectList::killObjects(LLViewerRegion *regionp)
|
|||
void LLViewerObjectList::killAllObjects()
|
||||
{
|
||||
// Used only on global destruction.
|
||||
LLViewerObject *objectp;
|
||||
|
||||
// Mass cleanup to not clear lists one item at a time
|
||||
mIndexAndLocalIDToUUID.clear();
|
||||
mActiveObjects.clear();
|
||||
mMapObjects.clear();
|
||||
|
||||
LLViewerObject *objectp;
|
||||
for (vobj_list_t::iterator iter = mObjects.begin(); iter != mObjects.end(); ++iter)
|
||||
{
|
||||
objectp = *iter;
|
||||
objectp->setOnActiveList(false);
|
||||
objectp->setListIndex(-1);
|
||||
objectp->mOnMap = false;
|
||||
killObject(objectp);
|
||||
// Object must be dead, or it's the LLVOAvatarSelf which never dies.
|
||||
llassert((objectp == gAgentAvatarp) || objectp->isDead());
|
||||
|
|
@ -1398,18 +1409,6 @@ void LLViewerObjectList::killAllObjects()
|
|||
LL_WARNS() << "LLViewerObjectList::killAllObjects still has entries in mObjects: " << mObjects.size() << LL_ENDL;
|
||||
mObjects.clear();
|
||||
}
|
||||
|
||||
if (!mActiveObjects.empty())
|
||||
{
|
||||
LL_WARNS() << "Some objects still on active object list!" << LL_ENDL;
|
||||
mActiveObjects.clear();
|
||||
}
|
||||
|
||||
if (!mMapObjects.empty())
|
||||
{
|
||||
LL_WARNS() << "Some objects still on map object list!" << LL_ENDL;
|
||||
mMapObjects.clear();
|
||||
}
|
||||
}
|
||||
|
||||
void LLViewerObjectList::cleanDeadObjects(bool use_timer)
|
||||
|
|
|
|||
Loading…
Reference in New Issue