Merge viewer-neko

Tue, 13 Mar 2018 19:48:24 +0100

author
Ansariel
date
Tue, 13 Mar 2018 19:48:24 +0100
changeset 55333
8f47409b63be
parent 55325
04ed11595051
parent 55332
eb12b1bdf847
child 55334
d3479b5f7073

Merge viewer-neko

indra/llmessage/llavatarnamecache.cpp file | annotate | diff | revisions
indra/llrender/llgltexture.h file | annotate | diff | revisions
indra/newview/llfloaterreporter.cpp file | annotate | diff | revisions
indra/newview/llfloaterreporter.h file | annotate | diff | revisions
indra/newview/llinventorymodel.cpp file | annotate | diff | revisions
indra/newview/llpanelwearing.cpp file | annotate | diff | revisions
indra/newview/lltextureview.cpp file | annotate | diff | revisions
indra/newview/llviewerobject.cpp file | annotate | diff | revisions
indra/newview/llviewertexture.cpp file | annotate | diff | revisions
indra/newview/llviewertexturelist.cpp file | annotate | diff | revisions
indra/newview/llvoavatar.cpp file | annotate | diff | revisions
indra/newview/llvoicevivox.cpp file | annotate | diff | revisions
indra/newview/llvovolume.cpp file | annotate | diff | revisions
     1.1 --- a/indra/llmessage/llavatarnamecache.cpp	Fri Mar 02 20:45:53 2018 +0100
     1.2 +++ b/indra/llmessage/llavatarnamecache.cpp	Tue Mar 13 19:48:24 2018 +0100
     1.3 @@ -199,13 +199,21 @@
     1.4      LL_DEBUGS("AvNameCache") << "Entering coroutine " << LLCoros::instance().getName()
     1.5          << " with url '" << url << "', requesting " << agentIds.size() << " Agent Ids" << LL_ENDL;
     1.6  
     1.7 +    // Check pointer that can be cleaned up by cleanupClass()
     1.8 +    if (!sHttpRequest || !sHttpOptions || !sHttpHeaders)
     1.9 +    {
    1.10 +        LL_WARNS("AvNameCache") << " Trying to request name cache when http pointers are not initialized." << LL_ENDL;
    1.11 +        return;
    1.12 +    }
    1.13 +
    1.14 +    LLSD httpResults;
    1.15 +
    1.16      try
    1.17      {
    1.18          bool success = true;
    1.19  
    1.20          LLCoreHttpUtil::HttpCoroutineAdapter httpAdapter("NameCache", LLAvatarNameCache::sHttpPolicy);
    1.21          LLSD results = httpAdapter.getAndSuspend(sHttpRequest, url);
    1.22 -        LLSD httpResults;
    1.23  
    1.24          LL_DEBUGS() << results << LL_ENDL;
    1.25  
    1.26 @@ -244,6 +252,7 @@
    1.27      {
    1.28          LOG_UNHANDLED_EXCEPTION(STRINGIZE("coroutine " << LLCoros::instance().getName()
    1.29                                            << "('" << url << "', " << agentIds.size()
    1.30 +                                          << " http result: " << httpResults.asString()
    1.31                                            << " Agent Ids)"));
    1.32          throw;
    1.33      }
    1.34 @@ -354,6 +363,11 @@
    1.35  
    1.36  void LLAvatarNameCache::processName(const LLUUID& agent_id, const LLAvatarName& av_name)
    1.37  {
    1.38 +	if (agent_id.isNull())
    1.39 +	{
    1.40 +		return;
    1.41 +	}
    1.42 +
    1.43  	// Add to the cache
    1.44  	sCache[agent_id] = av_name;
    1.45  
     2.1 --- a/indra/llrender/llgltexture.h	Fri Mar 02 20:45:53 2018 +0100
     2.2 +++ b/indra/llrender/llgltexture.h	Tue Mar 13 19:48:24 2018 +0100
     2.3 @@ -49,6 +49,7 @@
     2.4  	enum EBoostLevel
     2.5  	{
     2.6  		BOOST_NONE 			= 0,
     2.7 +		BOOST_ALM			, //acts like NONE when ALM is on, max discard when ALM is off
     2.8  		BOOST_AVATAR_BAKED	,
     2.9  		BOOST_AVATAR		,
    2.10  		BOOST_CLOUDS		,
     3.1 --- a/indra/newview/llfloaterreporter.cpp	Fri Mar 02 20:45:53 2018 +0100
     3.2 +++ b/indra/newview/llfloaterreporter.cpp	Tue Mar 13 19:48:24 2018 +0100
     3.3 @@ -162,9 +162,9 @@
     3.4  	mPosition(),
     3.5  	mCopyrightWarningSeen( FALSE ),
     3.6  	mResourceDatap(new LLResourceData()),
     3.7 -	mAvatarNameCacheConnection(),
     3.8 -	mSnapshotTimer()
     3.9 +	mAvatarNameCacheConnection()
    3.10  {
    3.11 +	gIdleCallbacks.addFunction(onIdle, this);
    3.12  }
    3.13  
    3.14  // virtual
    3.15 @@ -228,6 +228,7 @@
    3.16  	{
    3.17  		mAvatarNameCacheConnection.disconnect();
    3.18  	}
    3.19 +	gIdleCallbacks.deleteFunction(onIdle, this);
    3.20  
    3.21  	// child views automatically deleted
    3.22  	mObjectID 		= LLUUID::null;
    3.23 @@ -245,18 +246,19 @@
    3.24  	delete mResourceDatap;
    3.25  }
    3.26  
    3.27 -// virtual
    3.28 -void LLFloaterReporter::draw()
    3.29 +void LLFloaterReporter::onIdle(void* user_data)
    3.30  {
    3.31 -	LLFloater::draw();
    3.32 -	static LLCachedControl<F32> screenshot_delay(gSavedSettings, "AbuseReportScreenshotDelay");
    3.33 -	if (mSnapshotTimer.getStarted() && mSnapshotTimer.getElapsedTimeF32() > screenshot_delay)
    3.34 +	LLFloaterReporter* floater_reporter = (LLFloaterReporter*)user_data;
    3.35 +	if (floater_reporter)
    3.36  	{
    3.37 -		mSnapshotTimer.stop();
    3.38 -		// <FS:Ansariel> Refresh screenshot button
    3.39 -		//takeNewSnapshot();
    3.40 -		takeNewSnapshot(false);
    3.41 -		// </FS:Ansariel>
    3.42 +		static LLCachedControl<F32> screenshot_delay(gSavedSettings, "AbuseReportScreenshotDelay");
    3.43 +		if (floater_reporter->mSnapshotTimer.getStarted() && floater_reporter->mSnapshotTimer.getElapsedTimeF32() > screenshot_delay)
    3.44 +		{
    3.45 +			floater_reporter->mSnapshotTimer.stop();
    3.46 +			// <FS:Ansariel> Refresh screenshot button
    3.47 +			//floater_reporter->takeNewSnapshot();
    3.48 +			floater_reporter->takeNewSnapshot(false);
    3.49 +			// </FS:Ansariel>
    3.50  	}
    3.51  }
    3.52  
     4.1 --- a/indra/newview/llfloaterreporter.h	Fri Mar 02 20:45:53 2018 +0100
     4.2 +++ b/indra/newview/llfloaterreporter.h	Tue Mar 13 19:48:24 2018 +0100
     4.3 @@ -83,7 +83,8 @@
     4.4  	/*virtual*/ BOOL postBuild();
     4.5  	/*virtual*/ void onOpen(const LLSD& key);
     4.6  	/*virtual*/ void onClose(bool app_quitting);
     4.7 -	virtual void draw();
     4.8 +
     4.9 +	static void onIdle(void* user_data);
    4.10  	
    4.11  	void setReportType(EReportType type) { mReportType = type; }
    4.12  	
     5.1 --- a/indra/newview/llinventorymodel.cpp	Fri Mar 02 20:45:53 2018 +0100
     5.2 +++ b/indra/newview/llinventorymodel.cpp	Tue Mar 13 19:48:24 2018 +0100
     5.3 @@ -364,17 +364,27 @@
     5.4  
     5.5  bool LLInventoryModel::isCategoryHidden(const LLUUID& id) const
     5.6  {
     5.7 +	bool res = false;
     5.8  	const LLViewerInventoryCategory* category = getCategory(id);
     5.9  	if (category)
    5.10  	{
    5.11  		LLFolderType::EType cat_type = category->getPreferredType();
    5.12 -		// <FS:Ansariel> Show inbox folder depending on FSShowInboxFolder setting
    5.13 -		//return (cat_type == LLFolderType::FT_INBOX || cat_type == LLFolderType::FT_OUTBOX);
    5.14 -		static LLCachedControl<bool> fsShowInboxFolder(gSavedSettings, "FSShowInboxFolder");
    5.15 -		return ((cat_type == LLFolderType::FT_INBOX && !fsShowInboxFolder) || cat_type == LLFolderType::FT_OUTBOX);
    5.16 -		// </FS:Ansariel>
    5.17 +		switch (cat_type)
    5.18 +		{
    5.19 +			case LLFolderType::FT_INBOX:
    5.20 +				// <FS:Ansariel> Show inbox folder depending on FSShowInboxFolder setting
    5.21 +				static LLCachedControl<bool> fsShowInboxFolder(gSavedSettings, "FSShowInboxFolder");
    5.22 +				return !fsShowIndoxFolder;
    5.23 +				// </FS:Ansariel>
    5.24 +			case LLFolderType::FT_OUTBOX:
    5.25 +			case LLFolderType::FT_MARKETPLACE_LISTINGS:
    5.26 +				res = true;
    5.27 +				break;
    5.28 +			default:
    5.29 +				break;
    5.30 +		}
    5.31  	}
    5.32 -	return false;
    5.33 +	return res;
    5.34  }
    5.35  
    5.36  S32 LLInventoryModel::getItemCount() const
     6.1 --- a/indra/newview/llpanelwearing.cpp	Fri Mar 02 20:45:53 2018 +0100
     6.2 +++ b/indra/newview/llpanelwearing.cpp	Tue Mar 13 19:48:24 2018 +0100
     6.3 @@ -407,7 +407,11 @@
     6.4  		}
     6.5  		else
     6.6  		{
     6.7 -			return mTempItemsList->hasSelectedItem();
     6.8 +			LLScrollListItem* item = mTempItemsList->getFirstSelected();
     6.9 +			if (item && item->getUUID().notNull())
    6.10 +			{
    6.11 +				return true;
    6.12 +			}
    6.13  		}
    6.14  	}
    6.15  
    6.16 @@ -600,7 +604,7 @@
    6.17  void LLPanelWearing::onRemoveAttachment()
    6.18  {
    6.19  	LLScrollListItem* item = mTempItemsList->getFirstSelected();
    6.20 -	if (item)
    6.21 +	if (item && item->getUUID().notNull())
    6.22  	{
    6.23  		LLSelectMgr::getInstance()->deselectAll();
    6.24  		LLSelectMgr::getInstance()->selectObjectAndFamily(mAttachmentsMap[item->getUUID()]);
     7.1 --- a/indra/newview/lltextureview.cpp	Fri Mar 02 20:45:53 2018 +0100
     7.2 +++ b/indra/newview/lltextureview.cpp	Tue Mar 13 19:48:24 2018 +0100
     7.3 @@ -173,9 +173,9 @@
     7.4  	{
     7.5  		color = LLColor4::green4;
     7.6  	}
     7.7 -	else if (mImagep->getBoostLevel() > LLGLTexture::BOOST_NONE)
     7.8 +	else if (mImagep->getBoostLevel() > LLGLTexture::BOOST_ALM)
     7.9  	{
    7.10 -		color = LLColor4::magenta;
    7.11 +		color = LLColor4::magenta; // except none and alm
    7.12  	}
    7.13  	else if (mImagep->getDecodePriority() <= 0.0f)
    7.14  	{
     8.1 --- a/indra/newview/llviewerobject.cpp	Fri Mar 02 20:45:53 2018 +0100
     8.2 +++ b/indra/newview/llviewerobject.cpp	Tue Mar 13 19:48:24 2018 +0100
     8.3 @@ -4504,10 +4504,10 @@
     8.4  	if (getTE(te)->getMaterialParams().notNull())
     8.5  	{
     8.6  		const LLUUID& norm_id = getTE(te)->getMaterialParams()->getNormalID();
     8.7 -		mTENormalMaps[te] = LLViewerTextureManager::getFetchedTexture(norm_id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
     8.8 +		mTENormalMaps[te] = LLViewerTextureManager::getFetchedTexture(norm_id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_ALM, LLViewerTexture::LOD_TEXTURE);
     8.9  		
    8.10  		const LLUUID& spec_id = getTE(te)->getMaterialParams()->getSpecularID();
    8.11 -		mTESpecularMaps[te] = LLViewerTextureManager::getFetchedTexture(spec_id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
    8.12 +		mTESpecularMaps[te] = LLViewerTextureManager::getFetchedTexture(spec_id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_ALM, LLViewerTexture::LOD_TEXTURE);
    8.13  	}
    8.14  }
    8.15  
    8.16 @@ -4631,14 +4631,14 @@
    8.17  S32 LLViewerObject::setTENormalMap(const U8 te, const LLUUID& uuid)
    8.18  {
    8.19  	LLViewerFetchedTexture *image = (uuid == LLUUID::null) ? NULL : LLViewerTextureManager::getFetchedTexture(
    8.20 -		uuid, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE, 0, 0, LLHost());
    8.21 +		uuid, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_ALM, LLViewerTexture::LOD_TEXTURE, 0, 0, LLHost());
    8.22  	return setTENormalMapCore(te, image);
    8.23  }
    8.24  
    8.25  S32 LLViewerObject::setTESpecularMap(const U8 te, const LLUUID& uuid)
    8.26  {
    8.27  	LLViewerFetchedTexture *image = (uuid == LLUUID::null) ? NULL : LLViewerTextureManager::getFetchedTexture(
    8.28 -		uuid, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE, 0, 0, LLHost());
    8.29 +		uuid, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_ALM, LLViewerTexture::LOD_TEXTURE, 0, 0, LLHost());
    8.30  	return setTESpecularMapCore(te, image);
    8.31  }
    8.32  
     9.1 --- a/indra/newview/llviewertexture.cpp	Fri Mar 02 20:45:53 2018 +0100
     9.2 +++ b/indra/newview/llviewertexture.cpp	Tue Mar 13 19:48:24 2018 +0100
     9.3 @@ -774,6 +774,7 @@
     9.4  	{
     9.5  		mBoostLevel = level;
     9.6  		if(mBoostLevel != LLViewerTexture::BOOST_NONE && 
     9.7 +			mBoostLevel != LLViewerTexture::BOOST_ALM && 
     9.8  			mBoostLevel != LLViewerTexture::BOOST_SELECTED && 
     9.9  			mBoostLevel != LLViewerTexture::BOOST_ICON)
    9.10  		{
    9.11 @@ -1667,6 +1668,10 @@
    9.12  		{
    9.13  			mDesiredDiscardLevel = 0;
    9.14  		}
    9.15 +		else if (!LLPipeline::sRenderDeferred && mBoostLevel == LLGLTexture::BOOST_ALM)
    9.16 +		{
    9.17 +			mDesiredDiscardLevel = MAX_DISCARD_LEVEL + 1;
    9.18 +		}
    9.19          else if (mDontDiscard && mBoostLevel == LLGLTexture::BOOST_ICON)
    9.20          {
    9.21              if (mFullWidth > MAX_IMAGE_SIZE_DEFAULT || mFullHeight > MAX_IMAGE_SIZE_DEFAULT)
    9.22 @@ -1959,8 +1964,9 @@
    9.23  			{
    9.24  				if(drawable->isRecentlyVisible())
    9.25  				{
    9.26 -					if (getBoostLevel() == LLViewerTexture::BOOST_NONE && 
    9.27 -						drawable->getVObj() && drawable->getVObj()->isSelected())
    9.28 +					if ((getBoostLevel() == LLViewerTexture::BOOST_NONE || getBoostLevel() == LLViewerTexture::BOOST_ALM)
    9.29 +						&& drawable->getVObj()
    9.30 +						&& drawable->getVObj()->isSelected())
    9.31  					{
    9.32  						setBoostLevel(LLViewerTexture::BOOST_SELECTED);
    9.33  					}
    9.34 @@ -1977,6 +1983,7 @@
    9.35  	if (getBoostLevel() ==  LLViewerTexture::BOOST_SELECTED && 
    9.36  		gFrameTimeSeconds - mSelectedTime > SELECTION_RESET_TIME)
    9.37  	{
    9.38 +		// Could have been BOOST_ALM, but if user was working with this texture, better keep it as NONE
    9.39  		setBoostLevel(LLViewerTexture::BOOST_NONE);
    9.40  	}
    9.41  
    9.42 @@ -2253,7 +2260,7 @@
    9.43  		// Load the texture progressively: we try not to rush to the desired discard too fast.
    9.44  		// If the camera is not moving, we do not tweak the discard level notch by notch but go to the desired discard with larger boosted steps
    9.45  		// This mitigates the "textures stay blurry" problem when loading while not killing the texture memory while moving around
    9.46 -		S32 delta_level = (mBoostLevel > LLGLTexture::BOOST_NONE) ? 2 : 1; 
    9.47 +		S32 delta_level = (mBoostLevel > LLGLTexture::BOOST_ALM) ? 2 : 1; 
    9.48  		if (current_discard < 0)
    9.49  		{
    9.50  			desired_discard = llmax(desired_discard, getMaxDiscardLevel() - delta_level);
    9.51 @@ -3272,6 +3279,10 @@
    9.52  		if (mFullWidth > MAX_IMAGE_SIZE_DEFAULT || mFullHeight > MAX_IMAGE_SIZE_DEFAULT)
    9.53  			mDesiredDiscardLevel = 1; // MAX_IMAGE_SIZE_DEFAULT = 1024 and max size ever is 2048
    9.54  	}
    9.55 +	else if (!LLPipeline::sRenderDeferred && mBoostLevel == LLGLTexture::BOOST_ALM)
    9.56 +	{
    9.57 +		mDesiredDiscardLevel = MAX_DISCARD_LEVEL + 1;
    9.58 +	}
    9.59  	else if (mBoostLevel < LLGLTexture::BOOST_HIGH && mMaxVirtualSize <= 10.f)
    9.60  	{
    9.61  		// If the image has not been significantly visible in a while, we don't want it
    10.1 --- a/indra/newview/llviewertexturelist.cpp	Fri Mar 02 20:45:53 2018 +0100
    10.2 +++ b/indra/newview/llviewertexturelist.cpp	Tue Mar 13 19:48:24 2018 +0100
    10.3 @@ -507,6 +507,12 @@
    10.4  	LLPointer<LLViewerFetchedTexture> imagep = findImage(image_id, get_element_type(boost_priority));
    10.5  	if (!imagep.isNull())
    10.6  	{
    10.7 +		if (boost_priority != LLViewerTexture::BOOST_ALM && imagep->getBoostLevel() == LLViewerTexture::BOOST_ALM)
    10.8 +		{
    10.9 +			// Workaround: we need BOOST_ALM texture for something, 'rise' to NONE
   10.10 +			imagep->setDecodePriority(LLViewerTexture::BOOST_NONE);
   10.11 +		}
   10.12 +
   10.13  		LLViewerFetchedTexture *texture = imagep.get();
   10.14  		if (request_from_host.isOk() &&
   10.15  			!texture->getTargetHost().isOk())
    11.1 --- a/indra/newview/llvoavatar.cpp	Fri Mar 02 20:45:53 2018 +0100
    11.2 +++ b/indra/newview/llvoavatar.cpp	Tue Mar 13 19:48:24 2018 +0100
    11.3 @@ -8176,13 +8176,11 @@
    11.4  			debugColorizeSubMeshes(i,LLColor4::blue);
    11.5  		}
    11.6  	}
    11.7 -	static LLUUID default_alpha_uuid = LLUUID(gSavedSettings.getString("UIImgDefaultAlphaUUID"));
    11.8 -	bool hair_alpha_exists = (getImage(TEX_HAIR_ALPHA, 0) && getImage(TEX_HAIR_ALPHA, 0)->getID() != default_alpha_uuid);
    11.9  
   11.10  	// set texture and color of hair manually if we are not using a baked image.
   11.11  	// This can happen while loading hair for yourself, or for clients that did not
   11.12  	// bake a hair texture. Still needed for yourself after 1.22 is depricated.
   11.13 -	if (!is_layer_baked[BAKED_HAIR] || (isEditingAppearance() && !hair_alpha_exists))
   11.14 +	if (!is_layer_baked[BAKED_HAIR])
   11.15  	{
   11.16  		const LLColor4 color = mTexHairColor ? mTexHairColor->getColor() : LLColor4(1,1,1,1);
   11.17  		LLViewerTexture* hair_img = getImage( TEX_HAIR, 0 );
    12.1 --- a/indra/newview/llvoicevivox.cpp	Fri Mar 02 20:45:53 2018 +0100
    12.2 +++ b/indra/newview/llvoicevivox.cpp	Tue Mar 13 19:48:24 2018 +0100
    12.3 @@ -700,7 +700,13 @@
    12.4  {
    12.5      mIsCoroutineActive = true;
    12.6      LLCoros::set_consuming(true);
    12.7 -    
    12.8 +
    12.9 +    while (gAgent.getTeleportState() != LLAgent::TELEPORT_NONE)
   12.10 +    {
   12.11 +        LL_INFOS("Voice") << "Suspending voiceControlCoro() due to teleport. Tuning: " << mTuningMode << ". Relog: " << mRelogRequested << LL_ENDL;
   12.12 +        llcoro::suspendUntilTimeout(1.0);
   12.13 +    }
   12.14 +
   12.15      do
   12.16      {
   12.17          
   12.18 @@ -722,7 +728,7 @@
   12.19          // and then reconstruct the voice connecion from scratch.
   12.20          if (mRelogRequested)
   12.21          {
   12.22 -            while (isGatewayRunning())
   12.23 +            while (isGatewayRunning() || gAgent.getTeleportState() != LLAgent::TELEPORT_NONE)
   12.24              {
   12.25                  llcoro::suspendUntilTimeout(1.0);
   12.26              }
   12.27 @@ -1413,7 +1419,7 @@
   12.28  
   12.29      mAudioSession = nextSession;
   12.30      mAudioSessionChanged = true;
   12.31 -    if (!mAudioSession->mReconnect)
   12.32 +    if (!mAudioSession || !mAudioSession->mReconnect)
   12.33      {
   12.34          mNextAudioSession.reset();
   12.35      }
   12.36 @@ -1421,16 +1427,19 @@
   12.37      // The old session may now need to be deleted.
   12.38      reapSession(oldSession);
   12.39  
   12.40 -    if (!mAudioSession->mHandle.empty())
   12.41 +    if (mAudioSession)
   12.42      {
   12.43 -        // Connect to a session by session handle
   12.44 -
   12.45 -        sessionMediaConnectSendMessage(mAudioSession);
   12.46 -    }
   12.47 -    else
   12.48 -    {
   12.49 -        // Connect to a session by URI
   12.50 -        sessionCreateSendMessage(mAudioSession, true, false);
   12.51 +        if (!mAudioSession->mHandle.empty())
   12.52 +        {
   12.53 +            // Connect to a session by session handle
   12.54 +
   12.55 +            sessionMediaConnectSendMessage(mAudioSession);
   12.56 +        }
   12.57 +        else
   12.58 +        {
   12.59 +            // Connect to a session by URI
   12.60 +            sessionCreateSendMessage(mAudioSession, true, false);
   12.61 +        }
   12.62      }
   12.63  
   12.64      notifyStatusObservers(LLVoiceClientStatusObserver::STATUS_JOINING);
   12.65 @@ -1495,6 +1504,11 @@
   12.66          LL_INFOS("Voice") << "event=" << ll_stream_notation_sd(result) << LL_ENDL;
   12.67          if (result.has("session"))
   12.68          {
   12.69 +            if (!mAudioSession)
   12.70 +            {
   12.71 +                LL_WARNS("Voice") << "Message for session handle \"" << result["handle"] << "\" while session is not initialized." << LL_ENDL;
   12.72 +                continue;
   12.73 +            }
   12.74              if (result.has("handle") && result["handle"] != mAudioSession->mHandle)
   12.75              {
   12.76                  LL_WARNS("Voice") << "Message for session handle \"" << result["handle"] << "\" while waiting for \"" << mAudioSession->mHandle << "\"." << LL_ENDL;
   12.77 @@ -1838,6 +1852,11 @@
   12.78          {   
   12.79              if (result.has("handle"))
   12.80              {
   12.81 +                if (!mAudioSession)
   12.82 +                {
   12.83 +                    LL_WARNS("Voice") << "Message for session handle \"" << result["handle"] << "\" while session is not initiated." << LL_ENDL;
   12.84 +                    continue;
   12.85 +                }
   12.86                  if (result["handle"] != mAudioSession->mHandle)
   12.87                  {
   12.88                      LL_WARNS("Voice") << "Message for session handle \"" << result["handle"] << "\" while waiting for \"" << mAudioSession->mHandle << "\"." << LL_ENDL;
    13.1 --- a/indra/newview/llvovolume.cpp	Fri Mar 02 20:45:53 2018 +0100
    13.2 +++ b/indra/newview/llvovolume.cpp	Tue Mar 13 19:48:24 2018 +0100
    13.3 @@ -945,7 +945,7 @@
    13.4  	{
    13.5  		LLLightImageParams* params = (LLLightImageParams*) getParameterEntry(LLNetworkData::PARAMS_LIGHT_IMAGE);
    13.6  		LLUUID id = params->getLightTexture();
    13.7 -		mLightTexture = LLViewerTextureManager::getFetchedTexture(id);
    13.8 +		mLightTexture = LLViewerTextureManager::getFetchedTexture(id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_ALM);
    13.9  		if (mLightTexture.notNull())
   13.10  		{
   13.11  			F32 rad = getLightRadius();
   13.12 @@ -3275,7 +3275,7 @@
   13.13  	{
   13.14  		if (mLightTexture.isNull() || id != mLightTexture->getID())
   13.15  		{
   13.16 -			mLightTexture = LLViewerTextureManager::getFetchedTexture(id);
   13.17 +			mLightTexture = LLViewerTextureManager::getFetchedTexture(id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_ALM);
   13.18  		}
   13.19  	}
   13.20  	else

mercurial