MAINT-7610 deadobject list increments incorrectly leading to possible memory overwrite

meow-7.2.2
Mnikolenko Productengine 2017-08-08 11:37:04 +03:00
parent c3097276be
commit 6302b0a9c7
1 changed files with 6 additions and 1 deletions

View File

@ -1247,9 +1247,11 @@ void LLViewerObjectList::clearDebugText()
void LLViewerObjectList::cleanupReferences(LLViewerObject *objectp)
{
bool new_dead_object = true;
if (mDeadObjects.find(objectp->mID) != mDeadObjects.end())
{
LL_INFOS() << "Object " << objectp->mID << " already on dead list!" << LL_ENDL;
new_dead_object = false;
}
else
{
@ -1286,7 +1288,10 @@ void LLViewerObjectList::cleanupReferences(LLViewerObject *objectp)
// Also, not cleaned up
removeDrawable(objectp->mDrawable);
mNumDeadObjects++;
if(new_dead_object)
{
mNumDeadObjects++;
}
}
static LLTrace::BlockTimerStatHandle FTM_REMOVE_DRAWABLE("Remove Drawable");