diff options
| author | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2021-09-29 16:50:32 +0100 | 
|---|---|---|
| committer | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2021-09-29 16:50:32 +0100 | 
| commit | 3c4198e4b50de0221020f3b5bbf7d3f7ff7cf984 (patch) | |
| tree | d731e7800fd45c5715ed7e103821cd1eb0edc9fa | |
| parent | e16105cab07047cadf0f5a4eae9335c066b5053c (diff) | |
SL-15999 - noninteractive sessions should quit cleanly when they get a close message. Removed some possible crashes
| -rw-r--r-- | indra/newview/llappviewer.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/lldynamictexture.cpp | 7 | ||||
| -rw-r--r-- | indra/newview/llviewermessage.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llviewerwindow.cpp | 13 | ||||
| -rw-r--r-- | indra/newview/llworldmapmessage.cpp | 4 | 
5 files changed, 25 insertions, 5 deletions
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 5413045e7a..bd1b30b4a1 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -2761,6 +2761,8 @@ bool LLAppViewer::initConfiguration()  		tempSetControl("SLURLPassToOtherInstance", "FALSE");  		tempSetControl("RenderWater", "FALSE");  		tempSetControl("FlyingAtExit", "FALSE"); +		tempSetControl("WindowWidth", "1024"); +		tempSetControl("WindowHeight", "200");  		LLError::setEnabledLogTypesMask(0);  		llassert_always(!gSavedSettings.getBOOL("SLURLPassToOtherInstance"));  	} diff --git a/indra/newview/lldynamictexture.cpp b/indra/newview/lldynamictexture.cpp index 8b8273d183..31ca2531ba 100644 --- a/indra/newview/lldynamictexture.cpp +++ b/indra/newview/lldynamictexture.cpp @@ -119,8 +119,11 @@ BOOL LLViewerDynamicTexture::render()  void LLViewerDynamicTexture::preRender(BOOL clear_depth)  {  	gPipeline.allocatePhysicsBuffer(); -	llassert(mFullWidth <= static_cast<S32>(gPipeline.mPhysicsDisplay.getWidth())); -	llassert(mFullHeight <= static_cast<S32>(gPipeline.mPhysicsDisplay.getHeight())); +	if (!gNonInteractive) +	{ +		llassert(mFullWidth <= static_cast<S32>(gPipeline.mPhysicsDisplay.getWidth())); +		llassert(mFullHeight <= static_cast<S32>(gPipeline.mPhysicsDisplay.getHeight())); +	}  	if (gGLManager.mHasFramebufferObject && gPipeline.mPhysicsDisplay.isComplete() && !gGLManager.mIsATI)  	{ //using offscreen render target, just use the bottom left corner diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index ab65d747ba..517e35d482 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -2423,6 +2423,10 @@ void translateFailure(LLChat chat, LLSD toastArgs, int status, const std::string  void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)  { +	if (gNonInteractive) +	{ +		return; +	}  	LLChat	chat;  	std::string		mesg;  	std::string		from_name; diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 20bb65760c..22279d0bf0 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -1516,8 +1516,15 @@ BOOL LLViewerWindow::handleCloseRequest(LLWindow *window)  void LLViewerWindow::handleQuit(LLWindow *window)  { -	LL_INFOS() << "Window forced quit" << LL_ENDL; -	LLAppViewer::instance()->forceQuit(); +	if (gNonInteractive) +	{ +		LLAppViewer::instance()->requestQuit(); +	} +	else +	{ +		LL_INFOS() << "Window forced quit" << LL_ENDL; +		LLAppViewer::instance()->forceQuit(); +	}  }  void LLViewerWindow::handleResize(LLWindow *window,  S32 width,  S32 height) @@ -2556,7 +2563,7 @@ void LLViewerWindow::reshape(S32 width, S32 height)  			mWindow->setMinSize(min_window_width, min_window_height);  			LLCoordScreen window_rect; -			if (mWindow->getSize(&window_rect)) +			if (!gNonInteractive && mWindow->getSize(&window_rect))  			{  			// Only save size if not maximized  				gSavedSettings.setU32("WindowWidth", window_rect.mX); diff --git a/indra/newview/llworldmapmessage.cpp b/indra/newview/llworldmapmessage.cpp index 8be340de4c..e4a9f9afdb 100644 --- a/indra/newview/llworldmapmessage.cpp +++ b/indra/newview/llworldmapmessage.cpp @@ -150,6 +150,10 @@ void LLWorldMapMessage::sendMapBlockRequest(U16 min_x, U16 min_y, U16 max_x, U16  // public static  void LLWorldMapMessage::processMapBlockReply(LLMessageSystem* msg, void**)  { +	if (gNonInteractive) +	{ +		return; +	}  	U32 agent_flags;  	msg->getU32Fast(_PREHASH_AgentData, _PREHASH_Flags, agent_flags);  | 
