Backport safety code for pipeline.cpp

--HG--
branch : Firestorm_2.4.1
meow-7.2.2
Arrehn 2011-01-30 02:52:19 -05:00
parent f2a60d6c2f
commit cf950363ef
1 changed files with 11 additions and 8 deletions

View File

@ -1407,15 +1407,18 @@ void LLPipeline::updateMovedList(LLDrawable::drawable_vector_t& moved_list)
LLDrawable::drawable_vector_t::iterator curiter = iter++;
LLDrawable *drawablep = *curiter;
BOOL done = TRUE;
if (!drawablep->isDead() && (!drawablep->isState(LLDrawable::EARLY_MOVE)))
if(drawablep)
{
done = drawablep->updateMove();
}
drawablep->clearState(LLDrawable::EARLY_MOVE | LLDrawable::MOVE_UNDAMPED);
if (done)
{
drawablep->clearState(LLDrawable::ON_MOVE_LIST);
iter = moved_list.erase(curiter);
if (!drawablep->isDead() && (!drawablep->isState(LLDrawable::EARLY_MOVE)))
{
done = drawablep->updateMove();
}
drawablep->clearState(LLDrawable::EARLY_MOVE | LLDrawable::MOVE_UNDAMPED);
if (done)
{
drawablep->clearState(LLDrawable::ON_MOVE_LIST);
iter = moved_list.erase(curiter);
}
}
}
}