diff options
| author | Steve Bennetts <steve@lindenlab.com> | 2009-11-23 17:49:01 -0800 | 
|---|---|---|
| committer | Steve Bennetts <steve@lindenlab.com> | 2009-11-23 17:49:01 -0800 | 
| commit | aec42e3fa2d8a1a4f0c07821821c114d72c339a7 (patch) | |
| tree | 6317ab4db7bebd3974c77c0226a10cc4cb33f4be /indra/newview | |
| parent | 7bfa11ed694f9fffa9d8983f3d60f740d630cfc2 (diff) | |
| parent | db79b2d0920bff9bf4f36e8249c0a243581d4c44 (diff) | |
merge
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/llappviewer.cpp | 48 | ||||
| -rw-r--r-- | indra/newview/lltexturefetch.cpp | 8 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_im_session.xml | 4 | 
3 files changed, 42 insertions, 18 deletions
| diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 4f2d3e9645..fa0ea557ba 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -1360,19 +1360,25 @@ bool LLAppViewer::cleanup()  		llinfos << "Waiting for pending IO to finish: " << pending << llendflush;  		ms_sleep(100);  	} -	llinfos << "Shutting down." << llendflush; +	llinfos << "Shutting down Views" << llendflush;  	// Destroy the UI  	if( gViewerWindow)  		gViewerWindow->shutdownViews(); + +	llinfos << "Cleaning up Inevntory" << llendflush;  	// Cleanup Inventory after the UI since it will delete any remaining observers  	// (Deleted observers should have already removed themselves)  	gInventory.cleanupInventory(); + +	llinfos << "Cleaning up Selections" << llendflush;  	// Clean up selection managers after UI is destroyed, as UI may be observing them.  	// Clean up before GL is shut down because we might be holding on to objects with texture references  	LLSelectMgr::cleanupGlobals(); +	 +	llinfos << "Shutting down OpenGL" << llendflush;  	// Shut down OpenGL  	if( gViewerWindow) @@ -1386,11 +1392,18 @@ bool LLAppViewer::cleanup()  		gViewerWindow = NULL;  		llinfos << "ViewerWindow deleted" << llendflush;  	} + +	llinfos << "Cleaning up Keyboard & Joystick" << llendflush;  	// viewer UI relies on keyboard so keep it aound until viewer UI isa gone  	delete gKeyboard;  	gKeyboard = NULL; +	// Turn off Space Navigator and similar devices +	LLViewerJoystick::getInstance()->terminate(); +	 +	llinfos << "Cleaning up Objects" << llendflush; +	  	LLViewerObject::cleanupVOClasses();  	LLWaterParamManager::cleanupClass(); @@ -1413,6 +1426,8 @@ bool LLAppViewer::cleanup()  	}  	LLPrimitive::cleanupVolumeManager(); +	llinfos << "Additional Cleanup..." << llendflush;	 +	  	LLViewerParcelMgr::cleanupGlobals();  	// *Note: this is where gViewerStats used to be deleted. @@ -1432,9 +1447,11 @@ bool LLAppViewer::cleanup()  	// Also after shutting down the messaging system since it has VFS dependencies  	// +	llinfos << "Cleaning up VFS" << llendflush;  	LLVFile::cleanupClass(); -	llinfos << "VFS cleaned up" << llendflush; +	llinfos << "Saving Data" << llendflush; +	  	// Quitting with "Remember Password" turned off should always stomp your  	// saved password, whether or not you successfully logged in.  JC  	if (!gSavedSettings.getBOOL("RememberPassword")) @@ -1476,13 +1493,16 @@ bool LLAppViewer::cleanup()  		gDirUtilp->deleteFilesInDir(gDirUtilp->getExpandedFilename(LL_PATH_CACHE,""),mask);  	} -	// Turn off Space Navigator and similar devices -	LLViewerJoystick::getInstance()->terminate(); -  	removeMarkerFile(); // Any crashes from here on we'll just have to ignore  	writeDebugInfo(); +	LLLocationHistory::getInstance()->save(); + +	LLAvatarIconIDCache::getInstance()->save(); + +	llinfos << "Shutting down Threads" << llendflush; +	  	// Let threads finish  	LLTimer idleTimer;  	idleTimer.reset(); @@ -1515,14 +1535,9 @@ bool LLAppViewer::cleanup()      sTextureFetch = NULL;  	delete sImageDecodeThread;      sImageDecodeThread = NULL; - -	LLLocationHistory::getInstance()->save(); - -	LLAvatarIconIDCache::getInstance()->save(); -  	delete mFastTimerLogThread;  	mFastTimerLogThread = NULL; - +	  	if (LLFastTimerView::sAnalyzePerformance)  	{  		llinfos << "Analyzing performance" << llendl; @@ -1544,6 +1559,8 @@ bool LLAppViewer::cleanup()  	}  	LLMetricPerformanceTester::cleanClass() ; +	llinfos << "Cleaning up Media and Textures" << llendflush; +  	//Note:  	//LLViewerMedia::cleanupClass() has to be put before gTextureList.shutdown()  	//because some new image might be generated during cleaning up media. --bao @@ -1557,13 +1574,13 @@ bool LLAppViewer::cleanup()  	LLVFSThread::cleanupClass();  	LLLFSThread::cleanupClass(); -	llinfos << "VFS Thread finished" << llendflush; -  #ifndef LL_RELEASE_FOR_DOWNLOAD  	llinfos << "Auditing VFS" << llendl;  	gVFS->audit();  #endif +	llinfos << "Misc Cleanup" << llendflush; +	  	// For safety, the LLVFS has to be deleted *after* LLVFSThread. This should be cleaned up.  	// (LLVFS doesn't know about LLVFSThread so can't kill pending requests) -Steve  	delete gStaticVFS; @@ -1577,12 +1594,11 @@ bool LLAppViewer::cleanup()  	LLWatchdog::getInstance()->cleanup(); +	llinfos << "Shutting down message system" << llendflush;  	end_messaging_system(); -	llinfos << "Message system deleted." << llendflush;  	// *NOTE:Mani - The following call is not thread safe.   	LLCurl::cleanupClass(); -	llinfos << "LLCurl cleaned up." << llendflush;  	// If we're exiting to launch an URL, do that here so the screen  	// is at the right resolution before we launch IE. @@ -1603,7 +1619,7 @@ bool LLAppViewer::cleanup()  	ll_close_fail_log(); -    llinfos << "Goodbye" << llendflush; +    llinfos << "Goodbye!" << llendflush;  	// return 0;  	return true; diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp index 6f3dabe5a7..9bb2a4ad0a 100644 --- a/indra/newview/lltexturefetch.cpp +++ b/indra/newview/lltexturefetch.cpp @@ -931,6 +931,14 @@ bool LLTextureFetchWorker::doWork(S32 param)  	if (mState == DECODE_IMAGE)  	{ +		if (mDesiredDiscard < 0) +		{ +			// We aborted, don't decode +			mState = DONE; +			setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority); +			return true; +		} +		  		if (mFormattedImage->getDataSize() <= 0)  		{  			llerrs << "Decode entered with invalid mFormattedImage. ID = " << mID << llendl; diff --git a/indra/newview/skins/default/xui/en/floater_im_session.xml b/indra/newview/skins/default/xui/en/floater_im_session.xml index 01713cc003..95d40d297b 100644 --- a/indra/newview/skins/default/xui/en/floater_im_session.xml +++ b/indra/newview/skins/default/xui/en/floater_im_session.xml @@ -8,9 +8,9 @@   left="0"   name="panel_im"   top="0" - can_close="true" + can_close="false"   can_dock="true" - can_minimize="false" + can_minimize="true"   visible="true"   width="300"   can_resize="true" | 
