From da6635702a7d07ddd3a45090cc74aea671c9a7c0 Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Thu, 17 Mar 2022 16:26:15 +0200 Subject: SL-16907 Crash at updateSkinInfoMatrixPalette When animesh stops being an animesh it might still be in a list, but will no longer have an avatar --- indra/newview/lldrawpool.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/newview/lldrawpool.cpp') diff --git a/indra/newview/lldrawpool.cpp b/indra/newview/lldrawpool.cpp index faa5f71da4..5c291b69fc 100644 --- a/indra/newview/lldrawpool.cpp +++ b/indra/newview/lldrawpool.cpp @@ -451,7 +451,7 @@ void LLRenderPass::pushRiggedBatches(U32 type, U32 mask, BOOL texture, BOOL batc LLDrawInfo* pparams = *i; if (pparams) { - if (lastAvatar != pparams->mAvatar || lastMeshId != pparams->mSkinInfo->mHash) + if (pparams->mAvatar.notNull() && (lastAvatar != pparams->mAvatar || lastMeshId != pparams->mSkinInfo->mHash)) { uploadMatrixPalette(*pparams); lastAvatar = pparams->mAvatar; -- cgit v1.2.3 From e20aafa2fe200cecf1f4d3ae31294ba0eb5ce194 Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Thu, 7 Apr 2022 14:17:30 +0300 Subject: SL-16907 Crash at updateSkinInfoMatrixPalette #2 --- indra/newview/lldrawpool.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'indra/newview/lldrawpool.cpp') diff --git a/indra/newview/lldrawpool.cpp b/indra/newview/lldrawpool.cpp index 5c291b69fc..a3837fe10c 100644 --- a/indra/newview/lldrawpool.cpp +++ b/indra/newview/lldrawpool.cpp @@ -596,6 +596,10 @@ bool LLRenderPass::uploadMatrixPalette(LLDrawInfo& params) //static bool LLRenderPass::uploadMatrixPalette(LLVOAvatar* avatar, LLMeshSkinInfo* skinInfo) { + if (!avatar) + { + return false; + } const LLVOAvatar::MatrixPaletteCache& mpc = avatar->updateSkinInfoMatrixPalette(skinInfo); U32 count = mpc.mMatrixPalette.size(); -- cgit v1.2.3