diff options
| -rw-r--r-- | indra/newview/llvoavatarself.cpp | 15 | 
1 files changed, 11 insertions, 4 deletions
| diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp index 0250627d1b..5f9e343907 100644 --- a/indra/newview/llvoavatarself.cpp +++ b/indra/newview/llvoavatarself.cpp @@ -783,11 +783,19 @@ void LLVOAvatarSelf::removeMissingBakedTextures()  	for (U32 i = 0; i < mBakedTextureDatas.size(); i++)  	{  		const S32 te = mBakedTextureDatas[i].mTextureIndex; -		LLViewerTexture* tex = getTEImage(te) ; +		const LLViewerTexture* tex = getTEImage(te); + +		// Replace with default if we can't find the asset, assuming the +		// default is actually valid (which it should be unless something +		// is seriously wrong).  		if (!tex || tex->isMissingAsset())  		{ -			setTEImage(te, LLViewerTextureManager::getFetchedTexture(IMG_DEFAULT_AVATAR)); -			removed = TRUE; +			LLViewerTexture *imagep = LLViewerTextureManager::getFetchedTexture(IMG_DEFAULT_AVATAR); +			if (imagep) +			{ +				setTEImage(te, imagep); +				removed = TRUE; +			}  		}  	} @@ -823,7 +831,6 @@ void LLVOAvatarSelf::updateRegion(LLViewerRegion *regionp)  		//	<< llendl;  	} -  	if (!regionp || (regionp->getHandle() != mLastRegionHandle))  	{  		if (mLastRegionHandle != 0) | 
