diff options
| author | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2010-04-02 13:10:54 -0400 | 
|---|---|---|
| committer | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2010-04-02 13:10:54 -0400 | 
| commit | 73827e8430c56a139cd29988217475d9a2b7b80e (patch) | |
| tree | 393bae5f3518b61140872318ebb0c055dbaf6f21 /indra/newview | |
| parent | 5faa2444f91a65b3dfcd2047e578a54226be8577 (diff) | |
| parent | 36987904d4568b5398122b3e09bea305bc49edc6 (diff) | |
merge
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/lltexturecache.cpp | 11 | ||||
| -rw-r--r-- | indra/newview/llviewermedia.cpp | 8 | ||||
| -rw-r--r-- | indra/newview/llviewermenufile.cpp | 5 | 
3 files changed, 19 insertions, 5 deletions
| diff --git a/indra/newview/lltexturecache.cpp b/indra/newview/lltexturecache.cpp index 08bc8220d9..651070a2ea 100644 --- a/indra/newview/lltexturecache.cpp +++ b/indra/newview/lltexturecache.cpp @@ -1108,7 +1108,16 @@ S32 LLTextureCache::openAndReadEntry(const LLUUID& id, Entry& entry, bool create  		{  			readEntryFromHeaderImmediately(idx, entry) ;  		} -		llassert_always(entry.mImageSize > entry.mBodySize); +		if(entry.mImageSize <= entry.mBodySize)//it happens on 64-bit systems, do not know why +		{ +			llwarns << "corrupted entry: " << id << " entry image size: " << entry.mImageSize << " entry body size: " << entry.mBodySize << llendl ; + +			//erase this entry and the cached texture from the cache. +			std::string tex_filename = getTextureFileName(id); +			removeEntry(idx, entry, tex_filename) ; +			mUpdatedEntryMap.erase(idx) ; +			idx = -1 ; +		}  	}  	return idx;  } diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index e0cbddafae..170eb7ae86 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -2968,7 +2968,13 @@ void LLViewerMediaImpl::calculateInterest()  	if(!mObjectList.empty())  	{  		// Just use the first object in the list.  We could go through the list and find the closest object, but this should work well enough. -		LLVector3d global_delta = gAgent.getPositionGlobal() - (*mObjectList.begin())->getPositionGlobal(); +		std::list< LLVOVolume* >::iterator iter = mObjectList.begin() ; +		LLVOVolume* objp = *iter ; +		llassert_always(objp != NULL) ; + +		LLVector3d obj_global = objp->getPositionGlobal() ; +		LLVector3d agent_global = gAgent.getPositionGlobal() ; +		LLVector3d global_delta = agent_global - obj_global ;  		mProximityDistance = global_delta.magVecSquared();  // use distance-squared because it's cheaper and sorts the same.  	} diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp index c575656b24..c415d89e9c 100644 --- a/indra/newview/llviewermenufile.cpp +++ b/indra/newview/llviewermenufile.cpp @@ -410,7 +410,6 @@ class LLFileTakeSnapshotToDisk : public view_listener_t  		{  			gViewerWindow->playSnapshotAnimAndSound(); -			LLImageBase::setSizeOverride(TRUE);  			LLPointer<LLImageFormatted> formatted;  			switch(LLFloaterSnapshot::ESnapshotFormat(gSavedSettings.getS32("SnapshotFormat")))  			{ @@ -425,12 +424,12 @@ class LLFileTakeSnapshotToDisk : public view_listener_t  				break;  			  default:   				llwarns << "Unknown Local Snapshot format" << llendl; -				LLImageBase::setSizeOverride(FALSE);  				return true;  			} +			formatted->enableOverSize() ;  			formatted->encode(raw, 0); -			LLImageBase::setSizeOverride(FALSE); +			formatted->disableOverSize() ;  			gViewerWindow->saveImageNumbered(formatted);  		}  		return true; | 
