diff options
author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2025-06-27 18:53:47 +0300 |
---|---|---|
committer | Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com> | 2025-06-27 20:59:31 +0300 |
commit | 86cc076ab561a45a124db25acdb82cfead4749a8 (patch) | |
tree | 4672792d9cd92bd7f6b3e5e58b3b6b7e249223cf /indra | |
parent | 9235312990b07314758ff1fc4825958d7ee74896 (diff) |
#4300 Crash at readProfileQuery
Diffstat (limited to 'indra')
-rw-r--r-- | indra/newview/llvoavatar.cpp | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 051f0721bf..bee3af4632 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -11782,16 +11782,24 @@ void LLVOAvatar::readProfileQuery(S32 retries) } else - { // wait until next frame - LLUUID id = getID(); + { + // wait until next frame + const LLUUID id = getID(); - LL::WorkQueue::getInstance("mainloop")->post([id, retries] { - LLVOAvatar* avatar = (LLVOAvatar*) gObjectList.findObject(id); - if(avatar) + LL::WorkQueue::getInstance("mainloop")->post([id, retries] + { + LLViewerObject* object = gObjectList.findObject(id); + if (object + && !object->isDead() + && object->isAvatar()) // probably excessive, pcode isn't supposed to change { - avatar->readProfileQuery(retries); + LLVOAvatar* avatar = (LLVOAvatar*)object; + if (avatar) + { + avatar->readProfileQuery(retries); + } } - }); + }); } } |