diff options
| author | andreykproductengine <akleshchev@productengine.com> | 2016-02-24 16:22:38 +0200 | 
|---|---|---|
| committer | andreykproductengine <akleshchev@productengine.com> | 2016-02-24 16:22:38 +0200 | 
| commit | 09cb792aa7908bc6c76792ba7ee5082b7569299a (patch) | |
| tree | 05efa1e7e59dabf740172d73577f9635c0074104 /indra/newview | |
| parent | c27f2e19125c469bd0cbddd8c2a8feac66dc8b9a (diff) | |
MAINT-5297 - icons were not removed from memory
Diffstat (limited to 'indra/newview')
| -rwxr-xr-x | indra/newview/llviewertexture.cpp | 3 | ||||
| -rwxr-xr-x | indra/newview/llviewertexturelist.cpp | 27 | 
2 files changed, 23 insertions, 7 deletions
| diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp index e2b8ff8e80..3e059f3b68 100755 --- a/indra/newview/llviewertexture.cpp +++ b/indra/newview/llviewertexture.cpp @@ -716,7 +716,8 @@ void LLViewerTexture::setBoostLevel(S32 level)  	{  		mBoostLevel = level;  		if(mBoostLevel != LLViewerTexture::BOOST_NONE &&  -			mBoostLevel != LLViewerTexture::BOOST_SELECTED) +			mBoostLevel != LLViewerTexture::BOOST_SELECTED &&  +			mBoostLevel != LLViewerTexture::BOOST_ICON)  		{  			setNoDelete();		  		} diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp index a8c93646c6..ca0565fa4b 100755 --- a/indra/newview/llviewertexturelist.cpp +++ b/indra/newview/llviewertexturelist.cpp @@ -450,11 +450,17 @@ LLViewerFetchedTexture* LLViewerTextureList::getImageFromUrl(const std::string&  		if (boost_priority != 0)  		{ -			if (boost_priority == LLViewerFetchedTexture::BOOST_UI -				|| boost_priority == LLViewerFetchedTexture::BOOST_ICON) +			if (boost_priority == LLViewerFetchedTexture::BOOST_UI)  			{  				imagep->dontDiscard();  			} +			if (boost_priority == LLViewerFetchedTexture::BOOST_ICON) +			{ +				// Agent and group Icons are downloadable content, nothing manages +				// icon deletion yet, so they should not persist +				imagep->dontDiscard(); +				imagep->forceActive(); +			}  			imagep->setBoostLevel(boost_priority);  		}  	} @@ -554,10 +560,16 @@ LLViewerFetchedTexture* LLViewerTextureList::createImage(const LLUUID &image_id,  	if (boost_priority != 0)  	{ -		if (boost_priority == LLViewerFetchedTexture::BOOST_UI -			|| boost_priority == LLViewerFetchedTexture::BOOST_ICON) +		if (boost_priority == LLViewerFetchedTexture::BOOST_UI) +		{ +			imagep->dontDiscard(); +		} +		if (boost_priority == LLViewerFetchedTexture::BOOST_ICON)  		{ +			// Agent and group Icons are downloadable content, nothing manages +			// icon deletion yet, so they should not persist.  			imagep->dontDiscard(); +			imagep->forceActive();  		}  		imagep->setBoostLevel(boost_priority);  	} @@ -1679,8 +1691,11 @@ LLUIImagePtr LLUIImageList::loadUIImage(LLViewerFetchedTexture* imagep, const st  	//don't compress UI images  	imagep->getGLTexture()->setAllowCompression(false); -	//all UI images are non-deletable -	imagep->setNoDelete(); +	//all UI images are non-deletable, except downloadable icons +	if (imagep->getBoostLevel() != LLGLTexture::BOOST_ICON) +	{ +		imagep->setNoDelete(); +	}  	LLUIImagePtr new_imagep = new LLUIImage(name, imagep);  	new_imagep->setScaleStyle(scale_style); | 
