diff options
author | Loren Shih <seraph@lindenlab.com> | 2009-11-12 10:06:57 -0500 |
---|---|---|
committer | Loren Shih <seraph@lindenlab.com> | 2009-11-12 10:06:57 -0500 |
commit | e2a40ec0caaf4c1f835177028e5d47dc663f9210 (patch) | |
tree | bd6e023d2f4deb766473fb96ecdd9b11ad16f602 /indra/newview/lltexturecache.cpp | |
parent | 9b1680927f474992d0f2f4313c7d7b9f730862f4 (diff) | |
parent | 95adfa4cacb68e21b7251882feffbc7cb50b4438 (diff) |
merge
Diffstat (limited to 'indra/newview/lltexturecache.cpp')
-rw-r--r-- | indra/newview/lltexturecache.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/indra/newview/lltexturecache.cpp b/indra/newview/lltexturecache.cpp index 6a4b967487..9be342c424 100644 --- a/indra/newview/lltexturecache.cpp +++ b/indra/newview/lltexturecache.cpp @@ -1541,23 +1541,24 @@ bool LLTextureCache::readComplete(handle_t handle, bool abort) { lockWorkers(); handle_map_t::iterator iter = mReaders.find(handle); - llassert_always(iter != mReaders.end() || abort); - LLTextureCacheWorker* worker = iter->second; - if (!worker) - return false; - bool res = worker->complete(); - if (res || abort) + LLTextureCacheWorker* worker = NULL; + bool complete = false; + if (iter != mReaders.end()) { - mReaders.erase(handle); + worker = iter->second; + complete = worker->complete(); + } + if (worker && (complete || abort)) + { + mReaders.erase(iter); unlockWorkers(); worker->scheduleDelete(); - return true; } else { unlockWorkers(); - return false; } + return (complete || abort); } LLTextureCache::handle_t LLTextureCache::writeToCache(const LLUUID& id, U32 priority, |