Skip to content

Commit 5b77436

Browse files
authored
#3288 null overrides crashes (#3289)
* Fixes for #3288 override copy related crashes when overrides can be nullptr
1 parent 67b9779 commit 5b77436

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

indra/newview/llselectmgr.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2251,11 +2251,15 @@ void LLSelectMgr::selectionRevertGLTFMaterials()
22512251

22522252
// Update material locally
22532253
objectp->setRenderMaterialID(te, asset_id, false /*wait for LLGLTFMaterialList update*/);
2254-
LLGLTFMaterial* material = new LLGLTFMaterial(*nodep->mSavedGLTFOverrideMaterials[te]);
2255-
objectp->setTEGLTFMaterialOverride(te, material);
2254+
LLGLTFMaterial* material = nodep->mSavedGLTFOverrideMaterials[te];
2255+
if (material)
2256+
{
2257+
material = new LLGLTFMaterial(*material);
2258+
objectp->setTEGLTFMaterialOverride(te, material);
2259+
}
22562260

22572261
// Enqueue update to server
2258-
if (asset_id.notNull())
2262+
if (asset_id.notNull() && material)
22592263
{
22602264
// Restore overrides and base material
22612265
LLGLTFMaterialList::queueApply(objectp, te, asset_id, material);

indra/newview/lltooldraganddrop.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1447,9 +1447,10 @@ void LLToolDragAndDrop::dropTexture(LLViewerObject* hit_obj,
14471447
}
14481448

14491449
LLTextureEntry* te = hit_obj->getTE(hit_face);
1450-
if (te && !remove_pbr)
1450+
LLGLTFMaterial * override_mat = nullptr;
1451+
if (te && !remove_pbr && (override_mat = te->getGLTFMaterialOverride()))
14511452
{
1452-
LLGLTFMaterial* copy = new LLGLTFMaterial(*te->getGLTFMaterialOverride());
1453+
LLGLTFMaterial* copy = new LLGLTFMaterial(*override_mat);
14531454
nodep->mSavedGLTFOverrideMaterials[hit_face] = copy;
14541455
}
14551456
else

0 commit comments

Comments
 (0)