diff options
Diffstat (limited to 'linden')
-rw-r--r-- | linden/indra/newview/lltexturecache.cpp | 7 | ||||
-rw-r--r-- | linden/indra/newview/lltexturefetch.cpp | 10 |
2 files changed, 16 insertions, 1 deletions
diff --git a/linden/indra/newview/lltexturecache.cpp b/linden/indra/newview/lltexturecache.cpp index 3cedf73..c5c14b5 100644 --- a/linden/indra/newview/lltexturecache.cpp +++ b/linden/indra/newview/lltexturecache.cpp | |||
@@ -1063,6 +1063,13 @@ void LLTextureCache::writeEntryAndClose(S32 idx, Entry& entry) | |||
1063 | if (!mReadOnly) | 1063 | if (!mReadOnly) |
1064 | { | 1064 | { |
1065 | entry.mTime = time(NULL); | 1065 | entry.mTime = time(NULL); |
1066 | if(entry.mImageSize < entry.mBodySize) | ||
1067 | { | ||
1068 | // Just say no, due to my messing around to cache discards other than 0 we can end up here | ||
1069 | // after recalling an image from cache at a lower discard than cached. RC | ||
1070 | return; | ||
1071 | } | ||
1072 | |||
1066 | llassert_always(entry.mImageSize == 0 || entry.mImageSize == -1 || entry.mImageSize > entry.mBodySize); | 1073 | llassert_always(entry.mImageSize == 0 || entry.mImageSize == -1 || entry.mImageSize > entry.mBodySize); |
1067 | if (entry.mBodySize > 0) | 1074 | if (entry.mBodySize > 0) |
1068 | { | 1075 | { |
diff --git a/linden/indra/newview/lltexturefetch.cpp b/linden/indra/newview/lltexturefetch.cpp index c9d8369..2184478 100644 --- a/linden/indra/newview/lltexturefetch.cpp +++ b/linden/indra/newview/lltexturefetch.cpp | |||
@@ -1142,7 +1142,15 @@ bool LLTextureFetchWorker::doWork(S32 param) | |||
1142 | else | 1142 | else |
1143 | { | 1143 | { |
1144 | setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority); | 1144 | setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority); |
1145 | return true; | 1145 | |
1146 | if(mDecodedDiscard<=0) | ||
1147 | { | ||
1148 | return true; | ||
1149 | } | ||
1150 | else | ||
1151 | { | ||
1152 | return false; | ||
1153 | } | ||
1146 | } | 1154 | } |
1147 | } | 1155 | } |
1148 | 1156 | ||