summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-01-22 01:11:20 +0200
committerAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-01-22 13:27:27 +0200
commit57492f319ddd758fbbedf015089a898ea4d5168d (patch)
treed2561e6d1850911a9c6e4abaaea0057c96ad7fb5 /indra/newview
parent0b2f7fcc6b67f629b41a804f77214d51497127a7 (diff)
#5318 Crash in profileAvatar
while avatar was in "not drawable" state.
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llvoavatar.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 438f84d625..aa7ab6e9e7 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -11417,12 +11417,17 @@ void LLVOAvatar::calculateUpdateRenderComplexity()
LLPerfStats::tunables.userFPSTuningStrategy != LLPerfStats::TUNE_SCENE_ONLY &&
!isVisuallyMuted())
{
- LLUUID id = getID(); // <== use id to make sure this avatar didn't get deleted between frames
- LL::WorkQueue::getInstance("mainloop")->post([this, id]()
+ const LLUUID id = getID(); // <== use id to make sure this avatar didn't get deleted between frames
+ LL::WorkQueue::getInstance("mainloop")->post([id]()
{
- if (gObjectList.findObject(id) != nullptr)
+ LLViewerObject* obj = gObjectList.findObject(id);
+ if (obj
+ && !obj->isDead()
+ && obj->isAvatar()
+ && obj->mDrawable)
{
- gPipeline.profileAvatar(this);
+ LLVOAvatar* avatar = (LLVOAvatar*)obj;
+ gPipeline.profileAvatar(avatar);
}
});
}